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