我想禁用当您按下分配给属于相关特定菜单的NSMenuItem的快捷键时发生的应用程序“菜单突出显示”。
问题是在应用程序中你使用键盘相当多,并且菜单一直变得突出显示有点烦人但我仍然希望有菜单(包括快捷方式),因为它向用户显示可以使用的行动。
答案 0 :(得分:0)
声明自定义NSMenuItem子类并开始使用该自定义类而不是NSMenuItem。
在这个课程中你应该覆盖这个方法:
- (BOOL)isHighlighted
{
return NO;
}
这样您就不会突出显示菜单项。
编辑
试试这个:
[item setOnStateImage: item.offStateImage];
答案 1 :(得分: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:
。检查nib / xib并检查它。它可能附在第一响应者身上。复制方法名称。
还可以使用更多常规项目(按钮等),还包括菜单项。
- (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)anItem