0

我想禁用当您按下分配给属于相关特定菜单的 NSMenuItem 的快捷键时发生的应用程序“菜单突出显示”。

问题是,在应用程序中,您经常使用键盘,并且一直突出显示菜单变得有点烦人,但我仍然希望在那里有菜单(包括快捷方式),因为它向用户显示哪些操作可以使用。

4

2 回答 2

0

声明一个自定义 NSMenuItem 子类并开始使用该自定义类而不是 NSMenuItem。

在此类中,您应该重写此方法:

- (BOOL)isHighlighted
{
    return NO;
}

这样您就不会突出显示菜单项。

编辑

尝试这个:

[item setOnStateImage: item.offStateImage];
于 2013-01-03T09:44:15.953 回答
0

FFR:在文档中查找以下方法:

- (BOOL)validateMenuItem:(NSMenuItem *)menuItem 

适用于选择菜单项和相关的命令键。

在您的 NSDocument 中提供一个正文,validateMenuItem 例如,

- (BOOL)validateMenuItem:(NSMenuItem *)menuItem 
{
    SEL theAction = [menuItem action];
    if (theAction == @selector(openPreferencesPanel:)) {
        return !_isCurrentlyModal;                   //A BOOL in MyDocument
    }
    return [super validateMenuItem:menuItem];           // Keep this for proper cut, paste, etc validation
}

在您的情况下,上述选择器可能是highlight:. 检查笔尖/xib 并检查它。它可能附加到第一响应者。复制方法名称。

还可以查看更一般的项目(按钮等),还包括菜单项。

- (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)anItem
于 2013-06-03T19:47:05.637 回答