Wie erzwinge ich eine NSPopUpButtonCell sich erneut anzuzeigen?
-
21-08-2019 - |
Frage
Ich erstelle eine benutzerdefinierte Unterklasse von NSPopUpButton und NSPopUpButtonCell ein einsames Symbol anzuzeigen oben auf der Schaltfläche statt des üblichen Textes.
Um dies zu tun Ich bin überschreiben
- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
in meiner Knopfzellenunterklasse meines Symbol an der entsprechenden Größe und Lage zu zeichnen. Wenn der Benutzer den Mauszeiger über die Schaltfläche Ich möchte dann das Bild ändern. Mein einziges Problem ist, ich kann nicht herausfinden, wie die Knopfzelle redisplay zu machen (durch drawInterior Aufruf ... wieder). Standardmäßig scheint es nur erneut anzuzeigen, wenn die Schaltfläche geklickt wird oder wenn der Fokus auf ein anderes Fenster bewegt. Ich habe setNeedsDisplay versucht. Ja, aber das scheint nicht, es zu tun
Lösung
Die Art, wie ich gefunden, dies zu tun war ein Aufruf an
einfügen[self updateCell:self.cell];
in meiner NSPopUpButton Unterklasse unmittelbar nach jedem Punkt geändert ich das Bild von der Zelle angezeigt.