Comment puis-je forcer un NSPopUpButtonCell à se réafficher?
-
21-08-2019 - |
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
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.