我是可可的新手,我想实现标题所暗示的内容:
有没有办法(简单或强硬)防止链接到菜单项的热键在触发时闪烁相应的菜单(你知道蓝色闪烁)?
为了更清楚地说明这一点,我已经了解了 acceptFirstResponder 技术,它有助于实现这种静音行为,而无需实际连接到菜单项(这是我想知道的是否可以实现)。
谢谢!
如果你有一个 NSResponder 在响应者链中,你可以这样做:
#define keyModifierMask (NSShiftKeyMask|NSControlKeyMask|NSAlternateKeyMask|NSCommandKeyMask)
- (BOOL)performKeyEquivalent:(NSEvent *)theEvent {
if ([@"q" isEqualToString: [theEvent charactersIgnoringModifiers]]
&& ([theEvent modifierFlags]&keyModifierMask) == NSCommandKeyMask) {
NSLog(@"Command-Q!");
return YES;
}
return NO;
}
performKeyEquivalent
让您有机会“拦截”任何关键事件,包括那些与菜单键等效的事件。
在这种情况下,Command-Q 现在将不再闪烁应用程序的菜单。(显然,您可能希望它做一些除 . 之外的事情NSLog()
。)