Pergunta

Eu tenho um NSTableView ligado a um nsarrayController com duas colunas. Uma coluna está vinculada aos objetos dispostos do controlador de matriz e exibe uma string.

Eu gostaria de exibir uma imagem na outra coluna, mas simplesmente não consigo fazer funcionar. Eu arrastei um nsimageCell para a coluna e defino a imagem manualmente, mas ela não aparecerá em tempo de execução. Eu verifiquei duas vezes e a imagem está no meu diretório de recursos.

Estou esquecendo de algo? O que mais devo fazer para fazer essa imagem aparecer?

Foi útil?

Solução

Então você quer que a mesma imagem apareça para cada linha? É por isso que você está definindo "à mão"? Para isso, você pode misturar métodos NStableViewDatasource com ligações. A ideia é que a coluna de sua string estará vinculada como de costume, mas sua coluna de imagem não está vinculada. Ele tem seu conjunto de identificadores (como "ImageColumn"). Em seguida, você usa o númerofRowsIntableView: e TableView: ObjectValueFortableColumn: Row: para fornecer a contagem de objetos do controlador de matriz (para que ele tenha o número certo de linhas) e simplesmente retorne sua imagem estática quando solicitar o valor para a coluna certa (verificando o id Para o seu "imageColumn"), retornando nulo de outra forma.

Se a imagem não for estática (ou seja, você deseja usá -la como um indicador de algum tipo), você pode usar o método acima (retornar algum valor baseado em imagem) ou ligações. Para usar ligações, você pode adicionar uma propriedade a qualquer classe que seu controlador de matriz esteja segurando, como "status" (um número). Você usará um NSValuETransformer personalizado que transforma o número do status em uma imagem correspondente. Sua coluna estará vinculada ao arranjo do controlador de matrizs. O resultado é uma imagem em sua coluna que corresponde a um determinado status.

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