【问题标题】:NSWindowRestoration issueNSWindowRestoration 问题
【发布时间】: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


【解决方案1】:

据我了解,我认为您必须在您的应用委托中启用该问题

- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender;
{
    return YES;
}

你试过了吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2016-01-22
    • 2021-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多