在Cocoa App中启用打开菜单

时间:2014-05-07 16:04:38

标签: macos cocoa openfiledialog

我有一个关于为OSX Cocoa App启用File Open菜单项的问题。

我在AppDelegate中创建了一个openDocument方法,并将菜单项连接到方法,并验证了当我单击文件打开菜单时调用该方法。

 - (IBAction)openDocument:(id)sender

我的问题是,这真的是实现文件打开菜单功能的方法吗?我有一半期待Cocoa自动显示打开的面板对话框,而不是我必须在openDocument方法中编写代码来执行此操作。情况不是这样吗?

1 个答案:

答案 0 :(得分:4)

NSDocumentController的默认实施方式为openDocument: 对于非基于文档的应用程序,您必须提供自定义实现(就像您一样)。

原因可能是,对于基于文档的应用程序,文档控制器可以创建NSDocument的实例,其中包含打开面板返回的URL的内容。
对于其他应用程序,用户选择文件后应用程序应该做什么不太明显。所以你必须通过代码指定这种行为。

如果您的应用适合基于文档的模型,则可以查看Document-Based App Programming Guide。采用Cocoa文档架构时,您可以免费获得大量默认行为。

当您检查"创建基于文档的应用程序"时,Xcode会创建所有必需的类。 "新项目"中的复选框向导。