Comment puis-je détecter lorsqu'un utilisateur a appuyé sur le bouton "retour" du clavier lors de l'édition de UITextField? J'ai besoin de le faire afin de supprimer le clavier lorsque l'utilisateur a appuyé sur le bouton «retour».
Merci.
Comment puis-je détecter lorsqu'un utilisateur a appuyé sur le bouton "retour" du clavier lors de l'édition de UITextField? J'ai besoin de le faire afin de supprimer le clavier lorsque l'utilisateur a appuyé sur le bouton «retour».
Merci.
Réponses:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return NO;
}
N'oubliez pas de définir le délégué dans le storyboard ...
self.yourTextField.delegate = self;
. Même plusieurs champs de texte fonctionnent également.
La délégation n'est pas requise, 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.
UIControlEventEditingDidEndOnExit
événement n'est envoyé que si la textFieldShouldReturn:
méthode de délégué retourne OUI (sans démissionner au préalable du champ de texte).
YES
pour cette méthode.
SWIFT 3.0
override open func viewDidLoad() {
super.viewDidLoad()
textField.addTarget(self, action: #selector(enterPressed), for: .editingDidEndOnExit)
}
dans la fonction enterPressed () mettez tous les comportements que vous recherchez
func enterPressed(){
//do something with typed text if needed
textField.resignFirstResponder()
}
Vous pouvez maintenant le faire dans 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é:
- (BOOL)textFieldShouldReturn:(UITextField *)txtField
{
[txtField resignFirstResponder];
return NO;
}
Lorsque vous cliquez sur le bouton Entrée, cette méthode de délégué est appelée. Vous pouvez capturer le bouton de retour de cette méthode de délégué.