Совместное использование объекта для привязки (в частности, NSDocument) между различными представлениями / кончиками
Я пишу приложение для OSX (Lion) с использованием Xcode 4.
Ударьте немного о стену с этим, и Интернет до сих пор оказался не особенно полезным.
У меня есть определенный документ, а также файл MainMenu.xib и окно документа; Окно документа - это, конечно, то, что создается при загрузке / создании документа, и, следовательно, имеет доступ к соответствующим данным.
Я хочу максимально использовать привязки Какао в этом проекте, поэтому мой вопрос таков:
Если я создам другой View (скажем, NSViewController со связанным Nib); как мне разрешить ему доступ к данным для документа?
Я попытался добавить #import для класса документа, но это вызывает проблемы, когда я добавляю #import к классу документа в контроллер представления (чтобы создать его) - я получаю ошибки компиляции неизвестного типа.
Я также пошел по пути передачи промежуточных объектов (и даже доступа к получателям / установщикам после создания контроллера представления); наверняка должен быть лучший, более чистый путь?
В приложении есть только один NSWindowController (по умолчанию), и это все, это ваниль из шаблона приложения на основе неосновных данных XCode.
Спасибо за вашу помощь, Клинт
1 ответ
Вы должны иметь ссылку на документ какого-либо вида в других ваших классах, если вы хотите привязать к нему. Поскольку вы уже используете NSViewController
Вы можете установить representedObject
из NSViewController
к вашему документу. Кроме того, вы могли бы подкласс NSViewController
и создайте пользовательское свойство для ссылки на документ.
YourViewController* controller = [[YourViewController alloc] initWithNibName:@"YourNib" bundle:nil];
[controller setRepresentedObject:yourDocument];
В Интерфейсном Разработчике вы можете затем привязать объекты в кончике контроллера представления к Владельцу файла, используя ключевой путь representedObject.<some property of your document>
,