【发布时间】:2010-11-10 12:23:53
【问题描述】:
使用 validateUserInterfaceItem 可以禁用/启用菜单项,但我需要类似的行为来隐藏菜单项,您有什么提示吗?
【问题讨论】:
使用 validateUserInterfaceItem 可以禁用/启用菜单项,但我需要类似的行为来隐藏菜单项,您有什么提示吗?
【问题讨论】:
- (BOOL)validateMenuItem:(NSMenuItem *)menuItem
docs中的一些细节。
更新:
如果validateMenuItem: 返回NO,NSMenu 不会隐藏NSMenuItems。相应的 NSMenuItem 被禁用(这告诉用户该功能存在,但当前不适用)。
Apple's HIG 中也建议了此行为。 (参见“命名菜单项”部分的第二段)
关于 NSMenuItem 的enabled 状态的另外两个说明:
setEnabled 仅在托管 NSMenu 的 autoenablesItems: 设置为 YES 时才有效 validateMenuItem: 的默认实现似乎会遍历响应者链来检查 NSMenuItem 的目标/动作是否可用。【讨论】:
您可以使用 -(BOOL) validateMenuItem: 在不需要时删除菜单项并在需要时插入它。
【讨论】: