私はココアが初めてで、タイトルが示唆することを達成したいと思っています:
トリガーされたときに、メニュー項目にリンクされたホットキーが対応するメニューを点滅させないようにする方法 (単純または難しい) はありますか (青い点滅を知っています)。
これを明確にするために、実際にメニュー項目に接続せずにこの種の無音動作を実現するのに役立つ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()
。)