2013-10-01 6 views
0

У меня есть приложение iTunes, основанное на Core Data, которое я создаю, которое имеет NSTableView в главном окне и позволяет пользователю выбирать элементы в представлении таблицы и выполнять «получение информации», например в iTunes. В настоящее время я работаю над информационным окном с одним элементом, который отображается, когда пользователь выбирает один элемент в главном окне (который находится в MainMenu.xib) и нажимал Cmd-I. Это приводит к отображению информационного окна с одним элементом (в SingleItemGetInfo.xib).Совместное использование NSArrayController между Nibs

Вид таблицы в главном окне заполняется посредством привязок к NSArrayController. Если я поместил NSArrayController в файл SingleItemGetInfo.xib, я понимаю, что это будет другой экземпляр NSArrayController.

Итак, каким образом можно связать поля в одном элементе, получить информационное окно к выбору, которое пользователь сделал в виде таблицы в главном окне?

MainMenu.xib's Array Controller bindings: 
Managed Object Context: AppDelegate.self.managedObjectContext 

MainMenu.xib's Table View bindings: 
Content: Array Controller.arrangedObjects 
Selection Indexes: Array Controller.selectionIndexes 
Sort Descriptors: Array Controller.sortDescriptors 

ответ

1

Это будет работать в основном так же, как это происходит, когда основные и подробные представления находятся в одном окне. Основное различие заключается в том, что вам необходимо связать selection контроллера массива в деталях xib с выбором главного контроллера массива.

Это зависит от того, как вы организовали свое приложение, как вы это делаете. Если оба представления запускаются одним и тем же объектом, вы можете просто сделать контроллер главного массива выходом, подключенным к контроллеру (@property IBOutlet NSArrayController *masterArrayController;). Затем в деталях xib вы можете привязать выбор контроллера массива деталей к выбору главного контроллера массива.

Если каждый вид имеет свой собственный контроллер, вы также можете рассмотреть возможность передачи управляемого объекта из главного представления в подробный вид. Затем вы можете привязываться к каждому из атрибутов управляемого объекта в вашем xib-файле (т. Е. Привязывать к файлу Owner self.detailObject.fullName). Если вы передадите ссылку, я думаю, что все изменения вернутся обратно в контекст управляемого объекта.

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