1

我是可可的新手,我想实现标题所暗示的内容:

有没有办法(简单或强硬)防止链接到菜单项的热键在触发时闪烁相应的菜单(你知道蓝色闪烁)?

为了更清楚地说明这一点,我已经了解了 acceptFirstResponder 技术,它有助于实现这种静音行为,而无需实际连接到菜单项(这是我想知道的是否可以实现)。

谢谢!

4

1 回答 1

0

如果你有一个 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()。)

于 2013-01-09T22:23:22.567 回答