2010-07-18 3 views
1

Je fais des NSScrollers personnalisés pour une utilisation dans NSScrollView. Mais quand l'un des aperçus de NSScroller obtient l'animation de noyau activée. Je reçois ce problème de dessin qui est une énorme nuisance. Chaque fois que je fais défiler dans les coins de la vue de défilement le clip de défilement. Mais si un scroller commence à dessiner dans le coin, la partie scroller reste dans ce coin. Qu'est-ce qui pourrait causer ce problème? J'ai trop de code à montrer ici. Mais voici mon code de dessin:NSScrollers personnalisés ayant un effet étrange de Core Animation

NSRect knobRect = [self rectForPart:NSScrollerKnob]; 

NSBezierPath *path = [NSBezierPath bezierPathWithRoundedRect:knobRect 
                xRadius:CornerRadius 
                yRadius:CornerRadius]; 

[path setLineWidth:2]; 
[[NSColor colorWithDeviceRed:0.114 green:0.114 blue:0.114 alpha:0.3] set]; 
[path fill]; 
[[NSColor colorWithDeviceWhite:1.0 
         alpha:0.100] set]; 

    // Clip drawing to this path; draw nothing outwith the path. 
[path addClip]; 
[path stroke]; 

je l'ai déjà essayé de se débarrasser de tout, sauf le remplissage, mais cela n'a pas fonctionné. Ce problème disparaît si j'appelle setNeedsDisplay: YES sur la super vue lorsque setFloatValue est appelée.

Clipping Issue http://idkz.org/b814ee5c875c9f44cc2d1345e4489420

Répondre

1

il semble que la réponse au problème semble être appeler:
[self setArrowsPosition:NSScrollerArrowsNone]; et il fonctionne comme par magie: D

Edit, mais j'obtenir un effet similaire quand je fais glisser la barre de défilement . : '(Y at-il de toute façon pour effacer les graphiques sans redessiner la scrollview lui-même :(

1

Vous avez probablement découvert cela par le savoir, mais dans votre cas, la pièce suivante devrait résoudre votre problème de dessin:

-(BOOL)isOpaque { 
    return NO; 
} 
Questions connexes