Cocoa validateUserInterfaceItem和菜单项隐藏
使用validateUserInterfaceItem可以禁用/启用菜单项,但我需要类似的行为来隐藏菜单项,有什么提示吗?-(BOOL)validateNuItem:(NSMenuItem*)菜单项 有关详细信息,请参阅 更新:Cocoa validateUserInterfaceItem和菜单项隐藏,cocoa,menu,nsmenu,Cocoa,Menu,Nsmenu,使用validateUserInterfaceItem可以禁用/启用菜单项,但我需要类似的行为来隐藏菜单项,有什么提示吗?-(BOOL)validateNuItem:(NSMenuItem*)菜单项 有关详细信息,请参阅 更新: 如果validateNuItem:返回NO,则NSMenus不会隐藏NSMenuItems。相应的NSMenuItem被禁用(它告诉用户该功能存在,但当前不适用)。 中也建议了这种行为。(参见“命名菜单项”部分的第二段) 关于NSMenuItem的启用状态的另外两个注意
如果
validateNuItem:
返回NO
,则NSMenus不会隐藏NSMenuItems。相应的NSMenuItem被禁用(它告诉用户该功能存在,但当前不适用)。中也建议了这种行为。(参见“命名菜单项”部分的第二段) 关于NSMenuItem的启用状态的另外两个注意事项:
仅当主机菜单的setEnabled
设置为autoenablesItems:
YES
的默认实现似乎遍历响应程序链,以检查NSMenuItem的目标/操作是否可用validateNuItem:
查看在ValidateNuitem中调用setHidden没有隐藏菜单,我不明白你为什么要从其他地方调用setHidden?我在我的一个项目中使用了它(也用于上下文菜单),它在那里就像一个符咒。可能是一些琐碎的东西(插座没有连接?)你说得对,但我有一个上下文菜单,我只想显示有效的“上下文”项,而不是有十几个菜单项,只有几个启用