même si cela peut paraà®tre un peu idiot comme question, mais y-a-t-il une manière simple de faire disparaà®tre le clavier après avoir remplir un TextField ?
Dans la fonction "textFieldShouldReturn" du UITextFieldDelegate, tu ajoutes un textField.resignFirstResponder()
Si tu n'as qu'un seul textField sinon il faut distinguer les return qui donne le focus au textField suivant.
Tu devras aussi probablement "overrider" la fonction" touchesBegan" également en ajoutant un ou des .resignFirstResponder() pour permettre le retrait du clavier lors d'un touch ailleurs que sur le textField.
switch(true){
case (textField === textfieldLogin):
textfieldMotDePasse.becomeFirstResponder() // met le focus sur le champs MDP
return true
case (textField === textfieldMotDePasse):
view.endEditing(true) // fait disparaitre le clavier
boutonConnexion.sendActions(for: UIControlEvents.touchUpInside) // Simule un clic sur le bouton "Connexion"
return false
default:
return true
}
}
Si tu valide sur le champ "Login", il passe au champ "Mot de passe".
Si tu valide sur le champs "Mot de passe", il simule un clic sur le bouton de connexion (et fait disparaitre le clavier avec view.endEditing(true) )
case (textField === textfieldMotDePasse):
view.endEditing(true) // fait disparaitre le clavier
boutonConnexion.sendActions(for: UIControlEvents.touchUpInside) // Simule un clic sur le bouton "Connexion"
return false
Pourquoi t'embrouillerais tu avec l'envoi d'une action ? Tu devrais avoir une méthode pour le bouton ; il ne faut que l'appeler.
case (textField === textfieldMotDePasse):
view.endEditing(true) // fait disparaitre le clavier
boutonConnexion.sendActions(for: UIControlEvents.touchUpInside) // Simule un clic sur le bouton "Connexion"
return false
Pourquoi t'embrouillerais tu avec l'envoi d'une action ? Tu devrais avoir une méthode pour le bouton ; il ne faut que l'appeler.
Il me semble que j'ai fais ça pour l'effet visuel sur le bouton, il "bouge" un peu lors du clic dessus..
Et je crois qu'il ne le faisait pas quand j'appelais la méthode..
Après je t'avoue que je n'ai pas chercher plus loin, monde code faisait ce que je voulais à ce moment là et ça m'a suffit ^^
Réponses
Bonjour,
Dans la fonction "textFieldShouldReturn" du UITextFieldDelegate, tu ajoutes un textField.resignFirstResponder()
Si tu n'as qu'un seul textField sinon il faut distinguer les return qui donne le focus au textField suivant.
Tu devras aussi probablement "overrider" la fonction" touchesBegan" également en ajoutant un ou des .resignFirstResponder() pour permettre le retrait du clavier lors d'un touch ailleurs que sur le textField.
--grillé par Joanna--
A quel endroit indiquer ce code ?
Merci
Autrement, il y a déjà un bouton pour le faire sur le clavier lui-même....
Seulement sur certains claviers, pas sur tous.
Si tu as plusieurs champs texte, tu peux aussi faire comme ça, pour avoir un comportement différent sur chaque bouton..
Exemple avec un champ Login, Mot de passe et un bouton de connexion
Si tu valide sur le champ "Login", il passe au champ "Mot de passe".
Si tu valide sur le champs "Mot de passe", il simule un clic sur le bouton de connexion (et fait disparaitre le clavier avec view.endEditing(true) )
Pourquoi t'embrouillerais tu avec l'envoi d'une action ? Tu devrais avoir une méthode pour le bouton ; il ne faut que l'appeler.
Il me semble que j'ai fais ça pour l'effet visuel sur le bouton, il "bouge" un peu lors du clic dessus..
Et je crois qu'il ne le faisait pas quand j'appelais la méthode..
Après je t'avoue que je n'ai pas chercher plus loin, monde code faisait ce que je voulais à ce moment là et ça m'a suffit ^^