【发布时间】:2011-11-30 18:38:53
【问题描述】:
我很难实现 Mac OS X 10.7 的这个新“功能”。在大多数情况下,我的应用程序无需我做任何事情即可运行。文件在启动时按预期重新打开。但是,如果文件被删除,我的应用程序将一无所获,需要通过“文件”菜单打开一个新的空白文档。
所以,到目前为止,我所做的是在创建新窗口时,我调用
[myWindow setRestorationClass:(Class < NSWindowRestoration >)self];
self 是我的 NSDocument 类。
因为 restoreWindowWithIdentifier:state:completionHandler: 是一个类方法,所以我不能在其中调用我的 windowController 创建方法 [self makeWindowControllers],也不能调用 [self initWithType:error] 来创建一个新文档(如果正在发送的文档)已被删除。如何判断正在发送的文档是否已从该方法中删除?
我已经阅读了所有我在 Apple 网站和其他地方可以找到的关于这个问题的信息,但我一无所获。意识到我对此缺乏核心理解,对此我深表歉意。我很感激任何帮助。谢谢。
【问题讨论】:
-
我的应用程序有相同的行为。 AFAIK,当原始文件被删除时,用户必须选择 File -> New 打开一个新的主窗口,或者使用 File -> Open 打开另一个文件。对于我的应用程序,它“开箱即用”......
-
我通过在 IB 中取消选中我的窗口的可恢复状态禁用了恢复功能。但是,现在当程序重新启动时,新的无标题文档不会像以前那样打开。令人沮丧。
标签: cocoa nswindow resume document-based