【问题标题】:Check if NSDocument is new检查 NSDocument 是否是新的
【发布时间】:2012-08-29 18:21:13
【问题描述】:

你怎么知道NSDocument 是不是新的?

我目前正在使用fileURL != nil,但我在文档中找不到任何可以证实这一点的地方。

此外,fileURL 在恢复的文档中返回nil(在退出应用程序而不保存然后再次打开应用程序之后)。是否可以区分新文档和恢复文档?

【问题讨论】:

  • 如果它是新的,我需要显示一个不同的窗口。如果它恢复了,我需要禁用某些功能。
  • “恢复”是指用户在版本浏览器中查看它吗?或者实际上在那之后,当从浏览器恢复文档时?

标签: macos cocoa nsdocument document-based


【解决方案1】:

【讨论】:

    【解决方案2】:

    通过反复试验:

    - (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;
    }
    

    【讨论】:

      猜你喜欢
      • 2014-05-21
      • 1970-01-01
      • 2022-01-08
      • 2013-08-27
      • 1970-01-01
      • 1970-01-01
      • 2015-08-26
      • 1970-01-01
      • 2012-02-12
      相关资源
      最近更新 更多