我有一个关于为OSX Cocoa App启用File Open菜单项的问题。
我在AppDelegate中创建了一个openDocument方法,并将菜单项连接到方法,并验证了当我单击文件打开菜单时调用该方法。
- (IBAction)openDocument:(id)sender
我的问题是,这真的是实现文件打开菜单功能的方法吗?我有一半期待Cocoa自动显示打开的面板对话框,而不是我必须在openDocument方法中编写代码来执行此操作。情况不是这样吗?
答案 0 :(得分:4)
NSDocumentController的默认实施方式为openDocument:
对于非基于文档的应用程序,您必须提供自定义实现(就像您一样)。
原因可能是,对于基于文档的应用程序,文档控制器可以创建NSDocument
的实例,其中包含打开面板返回的URL的内容。
对于其他应用程序,用户选择文件后应用程序应该做什么不太明显。所以你必须通过代码指定这种行为。
如果您的应用适合基于文档的模型,则可以查看Document-Based App Programming Guide。采用Cocoa文档架构时,您可以免费获得大量默认行为。
当您检查"创建基于文档的应用程序"时,Xcode会创建所有必需的类。 "新项目"中的复选框向导。