У меня проблемы с отображением содержимого одного NSArrayController в двух окнах, определенных в разных XIB.
В моем главном окне (в MainMenu.xib) у меня есть NSTableView, который привязан к NSArrayController
Во втором моем XIB есть еще одно окно, содержащее NSTableView. Я создал новый NSArrayController и привязал таблицу к содержимому этого NSArrayController.
Оба NSArrayController привязаны к одному и тому же NSArray.
Сначала все в порядке, но проблема в том, что если объект добавляется в массив с помощью NSArrayController в главном окне, представление данных во вторичном окне не обновляется. Скорее всего, это связано с тем, что он не знает, что ему нужно обновить себя, поскольку его NSArrayController не использовался для добавления нового объекта.
Я бы хотел использовать один и тот же экземпляр NSArrayController в обоих окнах. Таким образом, если объект добавлен в массив, оба представления будут уведомлены об изменении.
Проблема в том, что я не могу понять, как это сделать в Интерфейсном Разработчике. Я не могу привязать NSArrayController к другому NSArrayController (я получаю сообщение об ошибке времени выполнения, указывающее, что он может быть привязан только к NSArray). Подключение NSArrayController к члену NSArrayController в File's Owner тоже не поможет, так как это просто уничтожит NSArrayController, который я хочу использовать.
Думаю, я мог бы сам установить привязки в коде, но, похоже, было бы лучше использовать Interface Builder, если это возможно. Есть ли способ сделать это в Interface Builder или, может быть, лучший способ настроить все вместе?
Обновление: В ответ на ответ и комментарии Чака я попробовал следующее: -Свяжите содержимое таблицы моего NSTableView с упорядоченными объектами члена NSArrayController (если я использовал сам NSArrayController, в log: «[количество NSArrayController]: неопознанный селектор отправлен в экземпляр») -Свяжите каждый столбец в таблице с владельцем файла с помощью пути ключа модели arrayController.arrangedObjects.propertyName
Это по-прежнему не приводило к обновлению содержимого таблицы. Я думаю, это связано с тем, что я привязываюсь к расположенным объектам NSArrayController, а не к самому NSArrayController. Но если я привяжусь к NSArrayController напрямую, это даст мне ошибки.
Обычно я бы выбрал свой NSArrayController из ComboBox «Привязать к», использовал устроенные объекты в качестве ключа контроллера, а само свойство - в качестве пути ключа модели. Я не уверен, как сделать что-то подобное в этом случае - если вообще смогу.
Я сделал что-то не так в описанном выше процессе?