xcode - 如果没有恢复文档,如何自动创建新的 NSDocument?

标签 xcode cocoa nsdocument nsapplication nsapplication-delegate

编辑:下面的问题似乎只在我从 Xcode 中运行(我使用的是 4.4)而不是从 Finder 运行时才会发生(而不是发生......:)。这是 Xcode 错误,还是我遗漏了什么?

我想在应用程序启动时创建一个新的(无标题)NSDocument,以防没有自动恢复文档。 TextEdit 和 Safari 都显示了我想要的行为,所以看起来这应该是内置的,但我找不到任何选项。

重现我的问题的步骤:如果我在 Xcode 中创建一个新的基于文档的应用程序并运行它,它第一次运行时确实会创建一个无标题的文档。但是,如果我关闭该文档,退出应用程序,然后再次运行它,它不会给我一个新文档,除非我明确单击 Dock 中的应用程序图标。这与例如不同TextEdit,如果您退出并重新启动,您会得到一个新的空文档。 (正如预期的那样,更改包标识符会为我提供另一个新的无标题文档。)

我的第一个想法是,也许这应该发生在 applicationDidFinishLaunching: 中,但事实证明该方法是在恢复任何以前打开的文档之前执行的。

最佳答案

此行为是文档体系结构的一部分。您的应用程序委托(delegate)应实现协议(protocol) NSApplicationDelegate

的以下方法
- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender;
{
    return YES;
}

您可以找到有关此的更多信息 here .

关于xcode - 如果没有恢复文档,如何自动创建新的 NSDocument?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13401969/

相关文章:

save - 从 "NSDocument is about to close sheet"拦截保存

objective-c - 如何在 RubyMotion 中实现 OSX 上的图像按钮?

objective-c - 多个类中的变量访问

cocoa - FFMPeg 与 xcode 集成

objective-c - Xcode - 基于文档的应用程序(文档包)

Xcode 6.1 对 git 的表现很奇怪

ios - Storyboard更改未在模拟器/iphone 中更新

ios - 如何将 iPhone X 的全屏图像添加到 xcassets(不是启动图像)?

objective-c - 什么是 NSFrozenDictionaryM?