使用validateUserInterfaceItem可以禁用/启用菜单项,但我需要一个类似的行为来隐藏菜单项,你有一些提示吗?
答案 0 :(得分:2)
- (BOOL)validateMenuItem:(NSMenuItem *)menuItem
docs中的一些细节。
<强>更新强>
如果validateMenuItem:
返回NO
,NSMenus不会隐藏NSMenuItems。相应的NSMenuItem被禁用(它告诉用户功能在那里,但目前不适用)
Apple's HIG中也建议使用此行为。 (参见“命名菜单项”部分的第二段)
关于NSMenuItem的enabled
状态的另外两个注释:
setEnabled
仅在托管NSMenu的autoenablesItems:
设置为YES
时才有效validateMenuItem:
的默认实现似乎遍历响应者链以检查NSMenuItem的目标/操作是否可用。答案 1 :(得分:0)
您可以使用 - (BOOL)validateMenuItem:删除不需要的菜单项,并在需要时插入它。