Pergunta

Eu estava fazendo um pouco de pesquisa sobre isso, e eu encontrei este questão.Implementei o código usado lá, mas nada aconteceu.Aqui está o código exato que eu estou usando:

.h ficheiro

#import <Cocoa/Cocoa.h>


@interface Test : NSView {

}

-(void)keyUp:(NSEvent*)event;
-(void)keyDown:(NSEvent*)event;

@end

.m arquivo

#import "Test.h"


@implementation Test

- (void)keyDown:(NSEvent*)event {
    NSLog(@"A key has been pressed");
    switch( [event keyCode] ) {
        case 126:       // up arrow
        case 125:       // down arrow
        case 124:       // right arrow
        case 123:       // left arrow
            NSLog(@"Arrow key pressed!");
            break;
        default:
            NSLog(@"Key pressed: %@", event);
            break;
    }
}

@end

O que há de errado?Há algo que eu tenho para adicionar à interface?

EDITAR:Bem, algo realmente fiz acontecer.Eu meu computador beeped em mim.Nada mais.

Foi útil?

Solução

Implementar acceptsFirstResponder:

- (BOOL)acceptsFirstResponder
{
    return YES;
}

Além disso, certifique-se de que a sua visão é o primeiro dispositivo de resposta (e.g.clicando dentro da visão).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top