Открытие документов с какао - PullRequest
0 голосов
/ 18 ноября 2010

У меня есть следующий метод для открытия документов.

- (BOOL)readFromData:(NSData *)data ofType:(NSString *)typeName error:(NSError **)outError
{
NSString *stringData = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

[editorView setString:stringData];

if ( outError != NULL ) {
    *outError = [NSError errorWithDomain:NSOSStatusErrorDomain code:unimpErr userInfo:NULL];
}

return YES;
}

Кажется, что документ и его представления не загружаются до тех пор, пока не будет возвращено YES, поэтому я не могу установить содержимое текстового представления, поскольку оно еще не загружено. Кто-нибудь знает обходной путь для этого?

Заранее спасибо

1 Ответ

3 голосов
/ 18 ноября 2010

Какао следует схеме проектирования модель-представление-контроллер (MVC). Вы должны прочитать об этом в концептуальной документации .

Не храните информацию о вашей модели в вашем представлении. То есть ваш объект документа должен содержать содержимое загруженного файла (в переменной экземпляра). Позже, когда , если вызывается -windowControllerDidLoadNib (означает, что для документа была загружена копия пользовательского интерфейса документа), вы можете обновить свое представление с содержимым файла.

Подход NSDocument полезен, поскольку существует ряд обстоятельств, при которых вы можете захотеть создать экземпляр документа, но не его пользовательский интерфейс (например, сценарии, импорт, запросы Spotlight importorter, мгновенная печать, ...).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...