Совместное использование объекта для привязки (в частности, NSDocument) между различными представлениями / кончиками - PullRequest
1 голос
/ 16 августа 2011

Я пишу приложение для OSX (Lion) с использованием Xcode 4.

Удар по стене с этим, и интернет пока что не особенно полезен.

У меня есть определенный документ, а также файл MainMenu.xib и окно документа;Окно документа - это, конечно, то, что создается при загрузке / создании документа, и поэтому имеет доступ к соответствующим данным.

Я хочу максимально использовать привязки Какао в этом проекте, поэтому мой вопрос заключается в том,это:

Если я создаю другой View (скажем, NSViewController со связанным Nib);как разрешить ему доступ к данным для документа?

Я попытался добавить #import для класса документа, но это вызывает проблемы, когда я добавляю #import к классу документа в контроллер представления(чтобы создать его) - я получаю ошибки компиляции неизвестного типа.

Я также пошел по пути передачи промежуточных объектов (и даже доступа к получателям / установщикам после создания контроллера представления);наверняка должен быть лучший, более чистый способ?

В приложении есть только один NSWindowController (по умолчанию), и это все, что оно ванильно из шаблона приложения на основе неосновных данных XCode.

Спасибо за помощь, Клинт

1 Ответ

1 голос
/ 16 августа 2011

Вам нужно иметь ссылку на какой-то документ в других ваших классах, если вы хотите привязать к нему. Поскольку вы уже используете NSViewController, вы можете установить representedObject из NSViewController для вашего документа. Кроме того, вы можете создать подкласс NSViewController и создать собственное свойство для ссылки на документ.

YourViewController* controller = [[YourViewController alloc] initWithNibName:@"YourNib" bundle:nil];
[controller setRepresentedObject:yourDocument];

В Интерфейсном Разработчике вы можете затем связать объекты в кончике контроллера вида с Владельцем файла , используя путь ключа representedObject.<some property of your document>.

...