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 に答える