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

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



