21 июн. 2013 г.

10 июн. 2013 г.

Простой пример NSTableView приложения с NSArrayController и NSUserDefaultsController

Сегодня я опишу один из простых примеров, который уже достал меня и забрал много времени, когда я пытался его реализовать! Я покажу Вам, как выполнить связь между NSTableColumn, NSArrayController и NSUserDefaultsController, не написав ни единой строчки кода.

Шаг 1: Создайте новый Cocoa-проект
Шаг 2: Дизайн ГУИ.

    Выберите MainMenu.xib, перетащите кнопки и таблицу из библиотеки объектов на окно и расставьте их в соотвествии как показано на скриншоте. Также добавьте из библиотеки объектов объект Array Controller, на панель xib. В моем случае я его переименовал в playersArrayController, который видно на скриншоте.

Шаг3: В окне настроек объектов (справа), выбираем меню Content Array binding. (Не забудьте включить состояние флажка на "Handles Content As Compound Value"



Шаг 4: Выставьте значение имени столбца Player (Model Key Path), в соответствии с рисунком ниже.


Шаг 5: И также для имени столбца Sport (Model Key Path), в соответствии с рисунком ниже.


Шаг 6: Свяжем действие add кнопки "+" с нашим Array Controller`ом.


Шаг 7: Такое же действие remove для кнопки "-" с нашим Array Controller`ом.


Шаг 8: Кнопку "Save" свяжем с действием Shared User Defaults Content.


    Финальный шаг - запустите программу. Теперь попробуйте в действии "+" и "-". Добавятся строки которые можно редактировать. А при нажатии на кнопку "Save", данные сохранятся. И после перезапуска приложения данные снова появятся в таблице.
 

    Пример кода можно скачать с github.com
    P.S. От автора. Переведенная статья, найдена на просторах сети.