6 Stimmen

Erfassen Sie die Modifizierer-Tasten (Steuerung, Alt, Umschalt oder CMD)

Ich weiß, wie man das Drücken von Tasten erkennt. Alle Tasten außer Control, Alt, Shift und CMD.

Wie kann ich erkennen, wenn diese Tasten gedrückt werden?

Vielen Dank im Voraus.

4voto

goetz Punkte 916

Wenn Sie diese Tasten in etwas wie einem NSView-Objekt erkennen möchten, werfen Sie einen Blick auf die Klasse NSResponder. Wenn Sie eine NSView-Klasse (oder eine ihrer Unterklassen) überschreiben, können Sie keyDown:(NSEvent *)theEvent(Apple-Dokumentation) überschreiben. Wenn Sie [theEvent modifierFlags] aufrufen, wird ein NSUInteger -Bitfeld zurückgegeben, das Sie dann auswerten können.

Zum Beispiel, mit

if ([theEvent modifierFlags] & NSCommandKeyMask) {
   ...
}

können Sie überprüfen, ob die Befehlstaste gedrückt ist.

Sehen Sie sich Apples Cocoa Event-handling Guide an, insbesondere den Abschnitt "Behandlung von Tastaturereignissen", für weitere Informationen.

4voto

Laurent Punkte 41

In

- (void) flagsChanged: (NSEvent *)theEvent

[theEvent keyCode] gibt eine Nummer für CRTL, SHIFT, ALT usw. an, daher müssen Sie nur eine Variable für diese Modifier umschalten, die zu Beginn auf 0 eingestellt ist.

Wenn Sie OpenGL verwenden, müssen Sie möglicherweise setzen:

-(BOOL) canBecomeKeyWindow

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X