É possível usar ligações de cacau ter um editável NSTableView ligado a um NSMutableArray?
-
03-07-2019 - |
Pergunta
Parece que a partir os pedaços que eu posso juntar que a resposta a esta será "não", então eu vou amplamente explicar o que estou tentando alcançar na (o provável) caso que eu estou tentando para martelo em um parafuso.
O que eu tenho em meu aplicativo é uma lista de extensões de arquivos válidos para ler, que eu estou recursivo através de um diretório para. Eu quero que isso seja uma preferência, então eu tenho o seguinte:
NSMutableDictionary *dic = [NSMutableDictionary dictionary];
[dic setObject:[NSMutableArray arrayWithObjects:@"pdf", @"rtf", @"txt", nil] forKey:@"validExtensions"];
[[NSUserDefaults standardUserDefaults] registerDefaults:dic];
e eu estou ligando o NSTableView a um NSArrayController que está ligado aos compartilhados padrões do usuário controlador ...
É este completamente a abordagem errada para ter uma lista customizável pelo usuário de extensões válidas? Tem eu entendi mal o papel de NSUserDefaults?
Solução
A resposta à questão colocada no título é "Sim" ... mas, infelizmente, isso não ajudá-lo, porque a mutabilidade das estruturas de dados na loja NSUserDefaults reais apoio não é controlada pela mutabilidade do objetos que você passar com registerDefaults:.
Para valores de preferência que são eles próprios estruturas, a fim de mudá-los você tem que ler a estrutura antiga, faça uma cópia mutável de qualquer parte que você precisa para modificar, alterar, que, em seguida, defina essa estrutura como o novo valor. Infelizmente, isso não é bem adequada para ligações, para que' d precisa uma camada de cola que espelhos alterações em uma matriz ligada em prefs.