Obtendo os dados de um NSTableView para um NSViewController
-
20-09-2019 - |
Pergunta
Eu gostaria de ter uma 'visualização detalhada' para quando o usuário clicar duas vezes em uma linha, não tenho certeza de como obter os dados para o NSViewController, para que possa exibir o conteúdo. Estou usando o Coredata e não consigo pensar em uma maneira de fazer isso.
Solução
Há algumas etapas que você precisa fazer aqui:
Verifique se a visualização da tabela é conduzida por um
NSArrayController
e que o seu controlador para a visualização da tabela (um controlador de janela ou um controlador de exibição, ou o que quer que seja)NSArrayController
vinculado a um adar para que você o acesse.No seu controlador de tabela Defina a ação de clique duplo para um método no seu controlador e defina o destino para o seu controlador.
No método de clique duplo, você pode acessar a linha solicitando o
-selectedObjects
deNSArrayController
e isso resultanteNSArray
deve ter apenas um elemento.
A partir daí, você pode criar sua visualização detalhada ou o que mais quiser fazer com ela. Você pode criar uma folha e exibi -la, abrir uma janela modal, etc.
Outras dicas
Cocos ligações.
A Apple tem um ótimo Tutorial sobre a criação de interface mestre-details online.
As capturas de tela estão um pouco desatualizadas se você estiver usando o Xcode 3.2, mas não é tão diferente.
O NSViewController tem a RepresentEDObject Propriedade, que permite se vincular ao objeto modelo que você está exibindo no momento.
Editar:OK. Minha resposta não é tão boa porque é apenas metade da verdade.
Embora mostre como vincular seus controles na visualização detalhada, não fornece uma solução sobre como vincular a seleção do controlador de matriz ao controlador de exibição representedObject
.
Eu estaria interessado em uma solução somente para vinculações para esse problema.