2009-05-04 13 views
3

Кажется, что из кусочков и кусочков я могу скрести, чтобы ответ на этот вопрос был «нет», поэтому я в общих чертах объясню, чего я пытаюсь достичь (вероятный) случай, который я пытаюсь забить винт.Можно ли использовать привязки Cocoa для создания редактируемого NSTableView, подключенного к NSMutableArray?

Что я имею в своем приложении - это список допустимых расширений файлов для чтения, которые я рекурсирую через каталог. Я хочу, чтобы это было предпочтением, поэтому я получил следующее:

NSMutableDictionary *dic = [NSMutableDictionary dictionary]; 
[dic setObject:[NSMutableArray arrayWithObjects:@"pdf", @"rtf", @"txt", nil] forKey:@"validExtensions"]; 
[[NSUserDefaults standardUserDefaults] registerDefaults:dic]; 

и я связывание NSTableView к NSArrayController, который связан с общим контроллером Defaults пользователя ...

ли это полностью неправильный подход к тому, чтобы пользовательский список допустимых расширений? Я неправильно понял роль NSUserDefaults?

ответ

3

Ответ на вопрос, поставленный в названии, - «Да» ... но, к сожалению, это не поможет вам, поскольку изменчивость структур данных в фактическом хранилище поддержки NSUserDefaults не контролируется изменчивостью объекты, которые вы проходите с помощью registerDefaults :.

Для значений предпочтений, которые сами являются структурами, для их изменения вам необходимо прочитать старую структуру, сделать изменчивую копию любой части, которую необходимо изменить, изменить, а затем установить эту структуру как новое значение. К сожалению, это плохо подходит для привязок, поэтому вам нужен слой клея, который отражает изменения в связанном массиве в prefs.

+0

Ах, конечно. Я не могу изменить массив, но я могу полностью заменить массив -setObject: forKey :, спасибо. – Drarok

 Смежные вопросы

  • Нет связанных вопросов^_^