2

使用 validateUserInterfaceItem 可以禁用/启用菜单项,但我需要类似的行为来隐藏菜单项,您有什么提示吗?

4

2 回答 2

2

- (BOOL)validateMenuItem:(NSMenuItem *)menuItem

文档中的一些细节。

更新:如果返回
NSMenuItems 不会隐藏 NSMenuItems 。相应的 NSMenuItem 被禁用(这告诉用户该功能存在,但当前不适用)。Apple 的 HIG 中也提出了这种行为。(参见“命名菜单项”部分的第二段) validateMenuItem:NO

关于 NSMenuItemenabled状态的另外两个说明:

  • setEnabled仅当autoenablesItems:托管 NSMenu 设置为YES
  • 的默认实现validateMenuItem:似乎遍历响应者链以检查 NSMenuItem 的目标/操作是否可用。
于 2010-11-10T12:31:22.283 回答
0

您可以使用 -(BOOL) validateMenuItem: 在不需要时删除菜单项并在需要时插入它。

请参阅菜单文档

于 2010-11-10T13:06:39.613 回答