Voglio rilevare ogni volta che l'utente preme un tasto della tastiera.Come rilevare il tasto della tastiera premuto in iphone?
Qualsiasi metodo chiamato solo quando si digita un carattere e non quando viene visualizzata la tastiera.
Grazie !!
Voglio rilevare ogni volta che l'utente preme un tasto della tastiera.Come rilevare il tasto della tastiera premuto in iphone?
Qualsiasi metodo chiamato solo quando si digita un carattere e non quando viene visualizzata la tastiera.
Grazie !!
È direttamente possibile gestire gli eventi della tastiera ogni volta che un utente preme un tasto:
In caso di UITextField
- (BOOL)textField:(UITextField *)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string {
// Do something here...
}
In Caso di UITextView:
- (BOOL)textView:(UITextView *)textView
shouldChangeTextInRange:(NSRange)range
replacementText:(NSString *)text {
// Do something here...
}
Quindi ogni volta che uno di questi metodi viene chiamato per ogni tasto che si preme usando la tastiera.
È anche possibile utilizzare NSNotificationCenter. Hai solo bisogno di aggiungere qualcuno di questi nel metodo ViewDidLoad.
NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];
UITextField:
[notificationCenter addObserver:self
selector:@selector(textFieldText:)
name:UITextFieldTextDidChangeNotification
object:yourtextfield];
allora si può mettere il codice in modo textFieldText:
:
- (void)textFieldText:(id)notification {
// Do something here...
}
UITextView
[notificationCenter addObserver:self
selector:@selector(textViewText:)
name:UITextViewTextDidChangeNotification
object:yourtextView];
allora si può mettere il codice in modo textViewText:
:
- (void)textViewText:(id)notification {
// Do something here...
}
Speranza che aiuta.
Se ho un UITextView e premo il tasto ReturnKey, verrà chiamato anche il metodo textViewDidChange. C'è un modo per riconoscere quale tasto è stato premuto sulla tastiera? –
Che dire dei tasti premuti in una UIWebView? –
Nota: shouldChangeTextInRange: non viene chiamato se il campo di testo è vuoto e si preme il tasto Canc. Il campo di testo sembra rilevare che il campo non è stato modificato in modo che il metodo delegato non debba essere attivato =/ – Zhang
Supponendo che la tastiera sta mostrando come conseguenza degli utenti toccando un UITextField, è possibile effettuare da soli il delegato e implementare questo metodo:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
Si chiamerà ogni volta che un utente preme un tasto.
questo chiamerà ogni volta, ma se l'utente cancella tutto il testo, questo non verrà chiamato –
Se il campo di testo è vuoto e si preme il pulsante dello spazio indietro non viene chiamato. – Ramakrishna
Ho una domanda per te, invece, come può l'utente digitare qualcosa se la tastiera non viene mostrata? –
Buona risposta qui. http://stackoverflow.com/questions/5216245/how-to-handle-key-events-in-iphone – Dilip
Stai usando un campo di testo? di controllo [questo] [1] [1]: http://stackoverflow.com/questions/7010547/uitextfield-text-change-event –