NSDocumentController currentDocument, возвращающее nil

Я работаю над своим первым Mac-приложением на основе документов.

Я создал подкласс NSDocument , переопределив такие методы, как

- (BOOL)readFromURL:(NSURL *)absoluteURL ofType:(NSString *)typeName error:(NSError **)outError;
- (BOOL)writeToURL:(NSURL *)absoluteURL ofType:(NSString *)typeName error:(NSError **)outError;
- (void)makeWindowControllers;

Контроллер главного окна является подклассом NSWindowsController , который содержит два подкласса NSViewController .

] Проблема, с которой я столкнулся, заключается в том, что мне нужен доступ к текущему документу из этих контроллеров представления.Я вызываю

MyDocument *myDocument = [[NSDocumentController sharedController] currentDocument];

Сначала, сразу после запуска приложения, создается новый документ.Затем создается главное окно и его контроллеры представления, но метод выше возвращает nil . Вот журнал (используя NSLog ). Я получаю:

Just created this new document: <MyDocument: 0x10040ff10>
I'm in a view controller and current document is (null)

После этого создание нового документа и вызов этого метода приводит к ненулевому указателю, но он указывает не на нужный документ, а к первому:

Just created this new document: <MyDocument: 0x100437e10>
I'm in a view controller and current document is <MyDocument: 0x10040ff10>

Обратите внимание, что после создания второго документа currentDocument указывает на первый документ, а не на второй.

Есть идеи, что я здесь упускаю или делаю неправильно? Когда currentDocument установлен для NSDocumentController ?

9
задан msoler 28 November 2012 в 03:38
поделиться