【问题标题】:NSDocument detect when a new document is created as opposed to a saved document restoredNSDocument 检测何时创建新文档而不是恢复已保存的文档
【发布时间】:2015-02-12 17:46:37
【问题描述】:

我发现我的基于文档的应用程序的架构存在一个主要问题。 基本上每次字段中的文本更改时,将模型(一个简单的字符串)存储在全局变量中。我让文档将此字符串保存为数据,并使用此数据恢复重新打开的文件。

现在,我现在看到的主要问题是,如果我恢复任何保存的文件,我会在文档“readFromData”函数(有效)中从文档中填充全局变量。

但是如果我创建一个新文档,“readFromData”永远不会被调用,所以我无法将全局字符串设置为“”,因此我的新文档全局变量仍然填充了最后保存的字符串。 (我使用它在加载时将字符串放回文本视图。

因此,作为一个简单的解决方法,我需要能够使用一个自动调用且仅在创建新文档时才调用的函数,将我的全局变量设置回“”。

我找不到可以覆盖的函数。有没有..?

【问题讨论】:

    标签: cocoa swift nsdocument


    【解决方案1】:

    我不确定我是否理解你想要做什么。

    你可以使用这个 NSDocument 初始化器:

    /* Initialize a new empty document of a specified type,
       and return it if successful.
       …
       You can override this method to perform initialization that
       must be done when creating new documents but should not be done
       when opening existing documents. 
    */
    - (instancetype)initWithType:(NSString *)typeName error:(NSError **)outError;
    

    在最初创建文档时,每个文档只调用一次。保存到磁盘后打开文档时不会调用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-05
      • 2021-09-12
      • 2012-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-26
      相关资源
      最近更新 更多