Definir a imagem NSBrowserCell usando ligações?
-
20-08-2019 - |
Pergunta
Eu tenho um NSBrowser ligado a um NSTreeController vinculado a um conjunto de NSTreeNode objetos. É fácil o suficiente para chegar a parte de texto de trabalho, definindo o conteúdo e valor do conteúdo ligações para referenciar corretamente o controlador de árvore, mas como faço para definir a imagem para cada célula usando ligações?
Solução
Não há built-in mecanismo para exibir uma imagem em uma célula navegador usando apenas ligações. Você pode equipar esse sistema um se você realmente quer, mas na minha experiência, às vezes é mais problema do que vale a pena para saltar através de aros só assim você pode dizer todos os seus usos coisas ligações, e é apenas mais fácil de fazer as coisas à moda antiga.
O método "tradicional" para colocar uma imagem em uma célula navegador é implementar o método delegado navegador:
- (void)browser:(NSBrowser *)sender willDisplayCell:(id)cell atRow:(NSInteger)row column:(NSInteger)column
Isso permite personalizar o celular no entanto você gostaria antes que seja atraído pelo browser. Dê uma olhada no exemplo SimpleBrowser in / desenvolvedor / Exemplos / AppKit, e você encontrará um exemplo de como usar este método delegado lá. Você não deve precisar a célula personalizado que eles usam nesse projeto - embora. Os granizos projeto de volta a partir do pré 10,2 dias, antes NSBrowserCell fornecido o seu próprio mecanismo que desenha
Outras dicas
Infelizmente, você não pode fazer isso facilmente com um NSBrowserCell. Use outra célula para colunas do seu navegador, um que leva o valor do objeto passado para ele no -setObjectValue:. E preenche o seu próprio texto e imagem de forma adequada