chiave fatto in applicazione per iPhone che chiude la tastiera (con UITextView)
-
11-10-2019 - |
Domanda
Sto lavorando su un'applicazione per iPhone e l'applicazione iPhone l'utente sta digitando in un UITextView. Mi chiedevo come avrei potuto aggiungere la chiave Fine sulla tastiera invece di avere la chiave di rendimento normale e quando si fa clic su quel tasto si chiude tastiera.
Grazie!
Soluzione
Non esiste un metodo -textViewShouldReturn:
nel protocollo UITextViewDelegate
. Se si desidera che il tasto invio (fatto) per chiudere la tastiera, è probabilmente meglio utilizzare un UITextField invece, UITextView
è destinato per la modifica di più righe di testo (quindi è necessario un modo per entrare un'interruzione di riga).
Se si vuole veramente per nascondere la tastiera quando colpisce il tasto invio in un UITextView
, probabilmente si potrebbe fare qualcosa di simile:
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if ([text isEqual:@"\n"]) {
[textView resignFirstResponder];
return NO;
}
return YES;
}
Altri suggerimenti
E 'semplice come:
textField.returnKeyType=UIReturnKeyDone;
Aggiungi questo al delegato del campo di testo per rimuovere la tastiera quando viene premuto:
- (BOOL)textFieldShouldReturn:(UITextField *)aTextfield {
[aTextfield resignFirstResponder];
return YES;
}
Oltre all'impostazione:
textField.returnKeyType = UIReturnKeyDone;
è necessario impostare il delegato del campo di testo alla classe, e fare qualcosa di simile a questo:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return YES;
}
Questa impostazione del returnKeyType può essere fatto da Interface Builder, come pure - se avete la vostra interfaccia utente definito in un XIB. D'altra parte il -resignFirstResponder farà in modo che la tastiera scompare. Dovrebbe essere fatto nel -textFieldShouldReturn:. Metodo delegato, dal momento che viene richiamato quando l'utente tocca sul pulsante Fine
Spero che questo aiuti.