当我们在MacOS中创建标准应用程序时,第一个响应者是什么?

时间:2012-05-22 08:57:12

标签: objective-c xib xcode4.3 first-responder

Xcode 4.3将开始生成mainmenu.xib

我看看那个mainmenu.xib

它有一个名为Main Menu的对象

我去看看菜单点是什么

菜单项 - 全部显示,链接到unhideAllApplications:

我试图找到unhideAllApplications定义的位置,但找不到任何内容。出口窗口说它与第一响应者有关。

它与第一响应者链接

我检查第一响应者的类,我找不到任何东西

例如,mainmenu.xib的文件所有者是NSApplication类的对象。

enter image description here

First Responder的等级是什么? 类视图中没有提到

enter image description here

奇怪的是mainmenu.xib中有3个对象,Application和Owner都是NSApplication类型。去图

enter image description here

1 个答案:

答案 0 :(得分:2)

第一响应者是当前关注的UI元素。只要焦点移动,它就会改变。

下一个响应者通常是该元素的父级,后者是该父级的父级,依此类推,以窗口内容视图,窗口,应用程序和应用程序的委托结束。

每个事件都在链中传递,每个响应者要么处理它,要么传递给下一个响应者。

例如,unhideAllApplications中定义了NSApplication。生成此操作时,当前链中的每个响应程序都将尝试它,直到它最终由应用程序对象处理。与直接发送到应用程序的区别在于其他对象将有机会拦截它。

Cocoa Event-handling Guide