Tenha mais de um NSTableView com conteúdo diferente - não exibe dados
-
25-09-2019 - |
Pergunta
Eu tenho duas visualizações de tabela (um azedista e uma visualização normal de mesa). Não estou usando ArrayControllers, apenas usando:
- (id)tableView:(NSTableView *)aTableView
objectValueForTableColumn:(NSTableColumn *)aTableColumn
row:(NSInteger)rowIndex;
- (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView;
Isso para exibir o conteúdo da linha. Mas o problema é que não tenho apenas uma visualização de tabela - tenho mais de um. Por isso, adicionei outro NSObject com esses códigos dentro. Mas o conteúdo não será mostrado.
Devo usar o ArrayControllers? Ou posso mostrar o conteúdo do segundo tabela de tabela de outra maneira?
Solução
Você não precisa usar controladores de matriz. Na verdade, eles nem existiam durante a maior parte da vida do cacau. O protocolo da fonte de dados funciona muito bem (ainda melhor em alguns casos).
Você pode ter controladores separados (um para cada tabela), é claro, mas observe que você recebe uma referência à visualização da tabela em cada uma das fontes de dados e delegados métodos (AtableView na sua fonte acima), para que você possa dar uma resposta diferente, dependendo de a visualização da tabela. Dessa forma, um controlador pode ser responsável pelas duas tabelas em sua interface do usuário mestre/detalhe. Em outras palavras:
Visualização da tabela: "O que é a coluna A da linha 3?"
Seu controlador: "Quem está perguntando?"
Em relação aos seus dados que não estão sendo exibidos, você instanciou seu segundo controlador e conectou a fonte de dados da tabela de problemas a ele? Você pediu à tabela para -reloaddata? É difícil ajudá -lo com as informações limitadas que você forneceu.