Добавьте NSArrayController
и подключите его к вашей Group
сущности (назовите ее GroupController
). Выберите столбец таблицы в левом исходном представлении и перейдите к инспектору привязок. Выберите раздел Value
и привяжите его к GroupController
, установив флажок. Завершите привязку, установив от Controller Key
до arrangedObjects
и Model Key Path
до title
.
Добавить еще NSArrayController
(PersonsController
). Перейдите к инспектору привязок и выберите раздел под названием Content Set
. Выберите ваш GroupController из выпадающего списка и установите флажок для привязки PersonsController
к GroupController
. Завершите привязку, установив Controller Key
в selection
и Model Key Path
в persons
. Это позволит найти лиц, подключенных к выбранной группе, в PersonsController
Затем вы можете привязать табличное представление в правой части окна к PersonsController. Подключите каждый столбец таблицы к PersonsController (firstName, lastName).
Возможность редактирования можно задать на уровне столбцов табличного представления вашей сущности Person.
РЕДАКТИРОВАТЬ: Ой, просто перечитайте свой вопрос и увидите, что вы хотите NSTreeController. Я думаю, что вы можете заменить GroupController - обычный NSArrayController - на NSTreeController. Я не вижу никаких иерархий в вашей группе. Здесь - хорошее руководство с кодом для контроллера дерева, который поддерживает объекты с иерархиями.
EDIT2: Еще один хороший учебник - пример Apple SourceView . В нем показано, как настроить представление исходного кода с помощью NSTreeController. Этот источник данных привязан к файлу на основе NSDictionary, но, используя другой учебник и описание обязательных привязок в моем ответе, вы сможете это сделать.