Cocoa开发:窗口、菜单、表单与文档应用详解
1. 利用第一响应者启用/禁用菜单项
在Cocoa开发中,有一种常见的自动启用和禁用菜单项的方法,它能让我们对每个菜单项的启用状态进行更精细的控制。该方法基于响应者链,类似于颜色面板寻找对象传递所选颜色的机制。
当Cocoa准备绘制菜单时,通常是用户点击菜单栏后,会对每个菜单项进行检查,以确定其是否应该启用。这个过程的核心方法是 validateUserInterfaceItem: ,其声明如下:
- (BOOL)validateUserInterfaceItem:
(id <NSValidatedUserInterfaceItem>)anItem;
若响应者链中的对象实现了此方法,会在适当的时候调用它,以判断用户界面项(这里指菜单项)是否应启用。在实现该方法时,可使用 anItem 获取有关要启用或禁用对象的信息,通常使用其 action 属性。
下面是菜单系统决定菜单项是否启用的流程图:
graph TD;
A[绘制菜单项] --> B{菜单项目标是特定对象还是第一响应者};
B -- 第一响应者 --> C[使用响应者链查找实现菜单项配置动作方法的目标对象];
C --> D{是否找到目标对象};
D -- 是 --> E{目标对象是否实现validate
超级会员免费看
订阅专栏 解锁全文
27

被折叠的 条评论
为什么被折叠?



