2013-04-17 2 views
1

Dans la fonction de tirage de la NSImageView, je veux mettre ma couleur personnalisée bague de mise au point, et non pas la valeur par défaut bleu color.I essayé comme suit le codeComment changer la couleur de la bague de mise au point?

NSSetFocusRingStyle(NSFocusRingOnly); 
[[NSColor redColor] setStroke]; 
NSRectFill([self bounds]); 

Mais la couleur est toujours par défaut color.How bleu puis-je résoudre ce problème?

mise à jour: La classe NSShadow m'aide à accomplir l'ajout de la bague de mise au point. Il est facile de changer la couleur de l'ombre.

NSShadow *shadow = [[[NSShadow alloc] init] autorelease]; 
[shadow setShadowBlurRadius:5]; 
[shadow setShadowOffset:NSMakeSize(0.0, 0.0)]; 
[shadow setShadowColor:[NSColor redColor]]; 
[shadow set]; 

code I ceci en fonction de tirage du NSImageView.

Répondre

2

La seule façon de résoudre ce "problème" est de dessiner vous-même la bague de mise au point. Le code NSFocusRingStyle est conçu pour vous permettre de dessiner facilement une bague de mise au point dans le style de mise au point sélectionné par l'utilisateur, ce qui permet de définir la couleur de la bague de mise au point.

C'est par conception que vous ne pouvez pas facilement changer la couleur de la bague de mise au point, car elle fait partie du thème de l'OS et devrait donc être sous le contrôle de l'utilisateur (selon le HIG). Si vous avez un cas particulier, comme la nécessité de colorer de manière adaptative la bague de mise au point en fonction du contenu de l'image, vous devrez créer votre propre bague de mise au point à partir de zéro.

+0

Je l'ai trouvé selon vous et dans la fonction de dessin de NSImageView, j'ai utilisé la classe NSShadow accomplir cela.Il a ressemblé à la même chose avec la bague de mise au point.Merci. – gohamgx

Questions connexes