J'ai créé un champ de texte dans Interface Builder. Je règle "Return Key" sur Done. Ceci est une entrée d'une seule ligne (il n'aura donc pas besoin de plusieurs lignes).
Comment masquer le clavier virtuel lorsque l'utilisateur appuie sur le bouton Terminé?
Implémentez la méthode déléguée UITextFieldDelegate
, puis:
- (void)viewDidLoad {
[super viewDidLoad];
self.yourIBtextField.delegate = self;
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return NO;
}
UITextView n'a aucune méthode qui sera appelée lorsque l'utilisateur appuiera sur la touche de retour.
Même dans ce cas, implémentez la méthode textView: shouldChangeTextInRange: replacementText: de UITextViewDelegate et vérifiez si le texte de remplacement est\n, masquez le clavier.
Il y a peut-être d'autres moyens mais je n'en connais aucun.
Assurez-vous de déclarer la prise en charge du protocole UITextViewDelegate.
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range
replacementText:(NSString *)text {
if([text isEqualToString:@"\n"]) {
[textView resignFirstResponder];
return NO;
}
return YES;
}
J'espère que cela aidera beaucoup.
Créer une catégorie sur UIViewController avec la méthode suivante
- (void)hideKeyboard
{
[[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder)
to:nil
from:nil
forEvent:nil];
}