Что у меня есть:
- controller1 и
NSArrayController
- controller2 и
NSArrayController
. Это имеет родительское отношение к атрибуту контроллера1. - controller1-2Tree
NSTreeController
иNSOutlineView
для просмотра. Это показывает иерархию контроллера1 и дочерних элементов каждого элемента, который он нашел из отношения родитель/потомок контроллера2. Это было сделано путем привязки двухNSArrayControllers
к значениям и дочерним элементам дерева.
Проблема:
Все в моей ситуации использует основные привязки. Тем не менее, в отличие от NSTableView
, неортодоксальная установка моего NSOutlineView
означает, что мой текущий выбор не передается моему соответствующему NSArrayController
. Например, если я выбираю дочерний элемент в моем controller1-2Tree, это объект из моего controller2, но сам controller2 не регистрирует объект. изменение выбора.
У меня есть соответствующий код для выбора изменений выбора. Я не уверен, как вручную изменить текущий элемент выбора controller2 или controller1 (хотя сейчас мне нужно 2), основываясь на знании текущего выбранного элемента дерево контроллера1-2.
Я придумал, как изолировать текущий выбранный объект, я просто упустил последний шаг, как связать это с NSArrayController
без повторения его на основе попытки сопоставить свойство.
NSManagedObject *selectedObject = [[controller1-2View itemAtRow:[controller1-2View selectedRow]] representedObject];
NSManagedObjectContext *selectedObjectContext = [selectedObject managedObjectContext];