在非基于文档的应用程序中启用打开文件菜单项

时间:2010-01-18 06:06:17

标签: objective-c cocoa macos interface-builder

我想在非基于文档的应用程序中启用灰显的打开文件菜单项。基于文档的应用程序会自动为您提供一个很好的打开文件对话框,其中包含基于plist条目等的文件扩展名过滤器......当然,存在一种简单优雅的方法来重新启用此功能。

我有......

  1. 向项目属性窗口添加文档类型
  2. 将我的控制器类指定为应用程序委托
  3. 添加了委托应用程序:openFile:到我的控制器类

2 个答案:

答案 0 :(得分:3)

关键是菜单项的响应者链中的某些内容必须响应-openDocument:操作。通常它是NSDocumentController。我将看一下基于文档的空应用程序如何设置该菜单项。

答案 1 :(得分:3)

首先,确保您的File-> Open菜单项的选择器已连接到First Responder的openDocument:操作。

其次,确保您正在响应该操作。看看Responder chain of a non-document application with an NSWindowController object。响应者链中的任何对象都可以响应消息,但最好选择最有能力和最合适的对象。一旦确定响应者链中哪个类最适合处理消息,请将openDocument:操作添加到其实现中,然后编写代码以相应地响应它。