你怎麼知道NSDocument
是新的?檢查NSDocument是否是新的
我目前使用的是fileURL != nil
,但在文檔中找不到任何可以證實這一點的地方。
此外,fileURL
返回nil
在恢復的文檔(退出應用程序不保存,然後再次打開應用程序後)。是否有可能區分新文檔和恢復文檔?
你怎麼知道NSDocument
是新的?檢查NSDocument是否是新的
我目前使用的是fileURL != nil
,但在文檔中找不到任何可以證實這一點的地方。
此外,fileURL
返回nil
在恢復的文檔(退出應用程序不保存,然後再次打開應用程序後)。是否有可能區分新文檔和恢復文檔?
通過試錯:
- (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;
}
答案是-[NSDocument draft]
。
https://developer.apple.com/documentation/appkit/nsdocument/1515065-draft
爲什麼你需要那個? – Sven
如果是新的,我需要顯示不同的窗口。如果恢復,我需要禁用某些功能。 – hpique
「恢復」,你的意思是用戶在版本瀏覽器中查看它?或者在此之後,當瀏覽器恢復文檔時? –