1

Xcode 4.3 将开始生成 mainmenu.xib

我看那个mainmenu.xib

它有一个名为 Main Menu 的对象

我也去看看菜单点是什么

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

我试图找到 unhideAllApplications 定义的位置,但找不到。出口窗口说它链接到第一响应者。

它与第一响应者相关联

我检查了第一响应者的班级,我也找不到任何东西

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

在此处输入图像描述

First Responder 的类别是什么?类视图中没有提到任何内容

在此处输入图像描述

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

在此处输入图像描述

4

1 回答 1

2

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

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

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

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

Cocoa 事件处理指南

于 2012-05-22T08:59:55.047 回答