Capture Key Press Event usando o NSNotificationCenter
-
27-09-2019 - |
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
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.