Comment puis-je détecter lorsqu'un utilisateur a appuyé sur le bouton du clavier "retour" lors de la modification de UITextField? Je dois le faire afin de fermer le clavier lorsque l'utilisateur a appuyé sur le bouton "retour".
Merci.
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return NO;
}
N'oubliez pas de placer le délégué dans le storyboard ...
La délégation n'est pas obligatoire, voici un one-liner:
- (void)viewDidLoad {
[textField addTarget:textField
action:@selector(resignFirstResponder)
forControlEvents:UIControlEventEditingDidEndOnExit];
}
Malheureusement, vous ne pouvez pas le faire directement dans votre Storyboard (vous ne pouvez pas connecter des actions au contrôle qui les émet dans Storyboard), mais vous pouvez le faire via une action intermédiaire.
Swift 3.0
override open func viewDidLoad() {
super.viewDidLoad()
textField.addTarget(self, action: #selector(enterPressed), for: .editingDidEndOnExit)
}
dans la fonction enterPressed () met tous les comportements que vous recherchez
func enterPressed(){
//do something with typed text if needed
textField.resignFirstResponder()
}
Vous pouvez maintenant le faire en utilisant le storyboard en utilisant l'événement envoyé "Did End On Exit".
Dans votre sous-classe de contrôleur de vue:
@IBAction func textFieldDidEndOnExit(textField: UITextField) {
textField.resignFirstResponder()
}
Dans votre storyboard pour le champ de texte souhaité:
Version Swift utilisant UITextFieldDelegate:
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
resignFirstResponder()
return false
}