2010-11-17 80 views
0

我有以下方法打開文檔。用Cocoa打開文檔

- (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返回的,所以我不能設置,因爲它尚未加載文本視圖的內容。有沒有人知道這方面的工作?

在此先感謝

回答

3

可可遵循模型 - 視圖 - 控制器(MVC)的設計模式。你應該閱讀它in the conceptual documentation

不要將您的模型信息存儲在您的視圖中。也就是說,你的文檔對象應該保存加載文件的內容(在一個實例變量中)。後來,如果 -windowControllerDidLoadNib被調用(表示已爲文檔加載文檔UI的副本),則可以使用該文件的內容更新您的視圖。

NSDocument的方法很有用,因爲有很多情況下您可能想實例化文檔而不是它的UI(認爲腳本,導入,Spotlight導入器查詢,即時打印...)。