如何访问默认的NSOPenPanel操作?

时间:2016-05-06 15:00:50

标签: swift macos

当用户从主菜单使用默认NSOpenPanel时会触发哪些操作?如何在不在代码中创建NSOpenPanel的情况下从中获取选择?

1 个答案:

答案 0 :(得分:1)

一个。

  

当用户从主菜单使用默认NSOpenPanel时会触发哪些操作?

主菜单中没有NSOpenPanel。有一个菜单项“打开......”

您可能“感觉”的自动化是依赖于项目实施的。但它并不是自动存在的。我认为必须明确一些要点:

一个。打开菜单项

菜单项“打开...”发送并仅将动作消息openDocument:发送给第一响应者。 “打开......”打开面板,窗口对话框或任何其他内容。

请获得一些information about first responders and the responder chain。遗憾的是,即使响应者链是Cocoa的核心概念之一,也是非常未知的。

湾打开面板

如果您选择了基于文档的应用程序,则在创建项目时,会对项目进行一些添加。特别是,

由于NSDocumentController实现-openDocument:,它将捕获操作消息和

  • 运行一个开放式面板
  • 创建NSDocument的实例。 (更精确地说:您选择作为文档类的子类。)

  

如何在不在代码中创建NSOpenPanel的情况下从中获取选择?

  • 创建一个基于文档的应用程序,让Cocoa做它必须做的事情。 Cocoa的基本实现与99%的案例相匹配,并且可以高度定制。
  • 不要创建基于文档的应用程序:自己处理操作消息,自己打开一个打开的面板,完成后,创建文档类的实例等等。