4

NSView で flagsChanged を使用して、修飾キーが押されたときまたは離されたときにイベントをトリガーしています。ただし、これが発生したときにキーの実際の新しい状態を取得する方法がよくわかりません。各修飾キーの状態を手動で確認することはできません。現在、独自の状態配列を使用してチェックしていますが、これは間違っているようで、信頼できません。これを正しく行うにはどうすればよいですか?

4

2 に答える 2

7

flagsChanged:関心のあるさまざまな修飾キー マスクに対して渡されるイベントを確認するだけです。

- (void)flagsChanged:(NSEvent *)theEvent {
   if (([theEvent modifierFlags] & NSAlternateKeyMask) == NSAlternateKeyMask) {
       // Do something based on the alt/option key being pressed
    } else if (([theEvent modifierFlags] & NSCommandKeyMask) == NSCommandKeyMask){
       // Do something based on the command key being pressed
    }
}
于 2013-01-16T03:30:06.237 に答える
0

「手動で」チェックするという意味がわかりません。このflagsChanged:メソッドは を提供しNSEvent*、それをメッセージとして渡すことができmodifierFlagsます。

于 2013-01-15T03:10:42.837 に答える