Come forzo un NSPopUpButtonCell per visualizzare di nuovo se stessa?
-
21-08-2019 - |
Domanda
Sto creando una sottoclasse personalizzata di NSPopUpButton e NSPopUpButtonCell per visualizzare un'icona solitario sulla parte superiore del pulsante invece del testo al solito.
Per fare questo sto ignorando
- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
nel mio sottoclasse di cellule pulsante per richiamare la mia icona con le dimensioni e la posizione appropriata. Quando passaggio del mouse sopra il pulsante ho poi vogliono cambiare l'immagine. Il mio unico problema è che non riesco a capire come rendere il Rivisualizza pile a bottone (chiamando drawInterior ... di nuovo). Per impostazione predefinita, sembra solo per visualizzare nuovamente quando il pulsante viene premuto o quando messa a fuoco è spostato in un'altra finestra. Ho provato setNeedsDisplay: Sì. Ma che non sembra farlo
Soluzione
Il modo che ho trovato per fare questo è stato quello di inserire una chiamata a
[self updateCell:self.cell];
dentro il mio sottoclasse NSPopUpButton subito dopo qualsiasi punto ho cambiato l'immagine visualizzata dalla cella.