Question

Je crée une sous-classe personnalisée de NSPopUpButton et NSPopUpButtonCell pour afficher une icône solitaire au-dessus du bouton au lieu du texte ordinaire.

Pour ce faire, je suis remplaçant

- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView

dans mon sous-classe bouton de cellule pour dessiner mon icône à la taille et l'emplacement. Lorsque les passe la souris sur le bouton puis je veux changer l'image. Mon seul problème est que je ne peux pas comprendre comment faire le réaffichage de pile bouton (en appelant drawInterior ... à nouveau). Par défaut, il semble que réafficher lorsque le bouton est cliqué ou lorsque le focus est déplacé vers une autre fenêtre. J'ai essayé setNeedsDisplay. OUI, mais cela ne semble pas le faire

Était-ce utile?

La solution

La façon dont je trouve à faire était d'insérer un appel à

[self updateCell:self.cell];

dans ma sous-classe NSPopUpButton immédiatement après tout point je changé l'image affichée par la cellule.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top