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

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top