Pergunta

esta soluçãoReceba eventos do teclado do iPhone

Oferece uma maneira de capturar o evento KeyPress usando o Centro de Notificação.

[NSNotificationCenter DefaultCenter] AddObServer: auto -seletor: @selector (keypressed :) nome: uitextfieldTextDidChangenotification Objeto: nil];

[NSNotificationCenter DefaultCenter] AddObServer: auto -seletor: @selector (keypressed :) nome: uitextviexTextDidChangenotification Object: nil];

........

-(void) KeyPressed: (NSnotification*) Notificação {nslog ([[objeto de notificação] text]); }

Funciona ok, mas para todas as teclas que são pressionadas do teclado, a função teclada é chamada 3 vezes.

Isso é normal ou estou fazendo algo errado?

Teo

Foi útil?

Solução

A notificação deve aparecer apenas uma vez por tecla pressionada. Pelo menos é isso que recebo ao testar. A única coisa que consigo pensar é que você está ligando addObserver:selector:name:object: três vezes.

Talvez você esteja fazendo isso em vários controladores de exibição e esqueça de ligar removeObserver:name:object:?

Ou você está ligando addObserver:selector:name:object: Em uma função que é chamada várias vezes? viewDidLoad Normalmente, é um bom lugar para colocar código como este.

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