11 Stimmen

Wie sammle ich Tastatureingaben in einer Video-Spiel-Stil Cocoa-App?

Ich arbeite an einer einfachen Cocoa-App, um Blöcke auf dem Bildschirm wie in einem Videospiel zu bewegen. Ich muss Tastendrücke erkennen, aber ich werde keine Texteingabefelder haben wie ein Dialogfeld.

Wie bekomme ich Tastendrücke ohne Textsteuerelemente? Insbesondere brauche ich die Pfeiltasten.

14voto

Jason Coco Punkte 77369

In Ihrer Spielansicht definieren Sie die keyUp- und keyDown-Methoden:

@interface MyView : NSView
-(void)keyUp:(NSEvent*)event;
-(void)keyDown:(NSEvent*)event;
@end

@implementation MyView

-(void)keyUp:(NSEvent*)event
{
    NSLog(@"Taste losgelassen: %@", event);
}

-(void)keyDown:(NSEvent*)event
{   
    // Ich habe diese basierend auf der Erweiterung Ihrer Frage hinzugefügt :)
    switch( [event keyCode] ) {
        case 126:   // Pfeil nach oben
        case 125:   // Pfeil nach unten
        case 124:   // Pfeil nach rechts
        case 123:   // Pfeil nach links
            NSLog(@"Pfeiltaste gedrückt!");
            break;
        default:
            NSLog(@"Taste gedrückt: %@", event);
            break;
    }
}
@end

Sehen Sie sich die Dokumentation für NSView und NSEvent für weitere Informationen an. Beachten Sie, dass die keyDown- und keyUp-Ereignisse tatsächlich in NSResponder, der Superklasse von NSView, definiert sind.

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