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

时间:2012-11-15 16:30:52

标签: xcode cocoa nsdocument nsapplication nsapplication-delegate

编辑:似乎下面的问题只发生(而不是发生...... :)当我在Xcode中运行时(我在4.4上),而不是从Finder运行。这是一个Xcode错误,还是我错过了什么?

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

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

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

1 个答案:

答案 0 :(得分:4)

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

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

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