Como faço para forçar uma NSPopUpButtonCell para exibir novamente a si mesmo?
-
21-08-2019 - |
Pergunta
Estou criando uma subclasse personalizada de NSPopupButton e NSPopUpButtonCell para exibir um ícone solitário em cima do botão em vez do texto normal.
Para fazer isso eu estou substituindo
- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
no meu subclasse de células botão para chamar o meu ícone no tamanho e local apropriado. Quando o usuário mouses sobre o botão Eu, então, quer mudar a imagem. O meu único problema é que eu não consigo descobrir como fazer a reexibição botão célula (chamando drawInterior ... novamente). Por padrão, ele só parece exibir novamente quando o botão é clicado ou quando o foco é movido para outra janela. Eu tentei setNeedsDisplay: Sim. Mas isso não parece fazê-lo
Solução
A maneira que eu encontrei para fazer isso era para inserir uma chamada para
[self updateCell:self.cell];
dentro da minha NSPopupButton subclasse imediatamente após qualquer ponto eu mudei a imagem exibida pela célula.