Como obtenho dados de um NSTableView?
-
19-09-2019 - |
Pergunta
eu tenho um NSTableView
com duas colunas e uma fonte de dados que as preenche com dados. Essa parte funciona.
Como faço para obter dados (NSString
formato) fora do NSTableView
? Eu posso obter a linha selecionada, mas NSTableView
Não parece ter métodos para acessar dados.
Obter os dados da minha fonte de dados parece retornar dados inúteis (ID do tipo e NSLog()
e NSRunAlertPanel()
Ambos afirmam que os dados não são do tipo NSString
.
Qual é a maneira mais fácil de obter dados de um NSTableView
?
Atualizar:
Acontece que o motivo de obter dados da minha fonte de dados falha tem a ver com o retorno NSString
Fazendo parte de um NSArray
no tableView()
método.
Meu arquivo de entrada contém linhas que eu me divido para as colunas na minha tabela View. o NSTableView
obtém os dados corretos, mas quando eu chamo o tableView()
Método eu mesmo encontro um Exc_bad_access Erro que presumo ter a ver com gerenciamento de memória.
Outra atualização:
Não era gerenciamento de memória. Era a incapacidade do meu aplicativo para identificar o NSTableColumn
queria. Eu escrevi um segundo método para acessar dados manualmente, que usa um int para a coluna em vez de um NSTableColumn
E isso funcionou.
Solução
É uma violação do paradigma do MVC usar sua tabela (uma visualização) como um local para armazenar seus dados (modelo). Você poderá obter o valor da sua fonte de dados da mesma maneira que a visualização da tabela; Para que seu código tableView:objectValueForTableColumn:row:
fazer para obter os dados?
Se sua mesa for editável, você receberá ligações da visualização da tabela para tableView:setObjectValue:forTableColumn:row:
para permitir que você modifique sua fonte de dados adequadamente.