在我的项目中,我需要能够区分用户创建的文档和在应用程序启动时通过 restoreStateWithCoder 恢复的文档之间的区别,因为对于新文档需要做一些事情,而不是恢复的文档。我怎样才能做到这一点?
问问题
129 次
2 回答
0
将“ NSDocument
”子类化并为您的文档使用该子类怎么样?
然后,您可以在发生时捕获“ restoreStateWithCoder
”,并为那些从磁盘恢复且未通过“文件-> 新建”命令重新创建的文档设置一个唯一标志(例如 BOOL 属性)。
您也可以尝试“方法调配” “ restoreStateWithCoder
”,但您必须决定在哪个对象中设置什么属性。
于 2013-06-16T03:28:28.640 回答
0
[为 Swift 回答这个问题,但总体思路也适用于 Objective-C]
当文档是全新的时,您通常会调用以下函数:
convenience init(type tyepName: String) throws
您可以在该函数中设置一个标志(例如needSpecialHandling = true
,一个最初初始化为 的变量false
)来说明您是否需要针对这种情况进行一些特殊处理。
然后在makeWindowControllers()
函数中使用该变量触发调用特殊代码 (if true
),就像在windowControllerDidLoadNib
函数中调用它一样。
于 2015-07-24T17:50:58.027 回答