2012-08-29 33 views
1

你怎麼知道NSDocument是新的?檢查NSDocument是否是新的

我目前使用的是fileURL != nil,但在文檔中找不到任何可以證實這一點的地方。

此外,fileURL返回nil在恢復的文檔(退出應用程序不保存,然後再次打開應用程序後)。是否有可能區分新文檔和恢復文檔?

+0

爲什麼你需要那個? – Sven

+0

如果是新的,我需要顯示不同的窗口。如果恢復,我需要禁用某些功能。 – hpique

+0

「恢復」,你的意思是用戶在版本瀏覽器中查看它?或者在此之後,當瀏覽器恢復文檔時? –

回答

0

通過試錯:

- (BOOL) readFromURL:(NSURL *)url ofType:(NSString *)typeName error:(NSError *__autoreleasing *)outError { 
    self.isNew = NO; // New documents don't call this method 

    BOOL success = [super readFromURL:url ofType:typeName error:outError]; 

    // This must go after calling super 
    self.isSaved = self.fileURL != nil; // Saved documents set fileURL 
    self.isUnsaved = self.fileURL == nil; // Unsaved/restored documents don't set fileURL. The url parameter points to a temporary folder. 

    return success; 
}