5

keyDownイベントを受信するために、NSDocumentアプリケーションでNSWindowをサブクラス化しました。

サブクラスで次のコードを使用しました...

- (void)keyDown:(NSEvent *)theEvent {

    NSLog(@"keyDown!");

    if ([theEvent modifierFlags] & NSAlternateKeyMask) {
        NSLog(@"Alt key Down!");
    }
    else
        [super keyDown:theEvent];
}

非修飾キーが押されたときにキーイベントを受信して​​います!たとえば、Alt + Z(Alt + Non-modifierkey)を押すと、「AltKeyisDown」が表示されます。

ここでの問題は、alt / optionキーだけが押されたときに、他のキーと組み合わせずにイベントを処理したいということです。-keyDown:は呼び出されません。私は何が欠けていますか?

ありがとう...

4

2 に答える 2

7

の代わりにAlt/Option キーだけ-flagsChanged:-keyDown:キャッチできます。

-(void)flagsChanged:(NSEvent*)theEvent {
    if ([theEvent modifierFlags] & NSAlternateKeyMask) {
        NSLog(@"Alt key Down (again)!");
    }
}
于 2010-11-04T21:49:45.577 に答える