J'ai un bouton et un champ de texte à mon avis. quand je clique sur le champ de texte, un clavier apparaît et je peux écrire sur le champ de texte et je peux également ignorer le clavier en cliquant sur le bouton en ajoutant:
[self.inputText resignFirstResponder];
Maintenant, je veux activer la touche de retour du clavier. quand je vais appuyer sur le clavier clavier disparaîtra et quelque chose va se passer. Comment puis-je faire ceci?
Assurez-vous que "self" s'abonne à UITextFieldDelegate
et initialisez inputText avec:
self.inputText.delegate = self;
Ajoutez la méthode suivante à "self":
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
if (textField == self.inputText) {
[textField resignFirstResponder];
return NO;
}
return YES;
}
Ou à Swift:
func textFieldShouldReturn(textField: UITextField) -> Bool {
if textField == inputText {
textField.resignFirstResponder()
return false
}
return true
}
avec le style d'extension Swift 3.
Commencez par configurer un délégué pour votre champ de texte.
override func viewDidLoad() {
super.viewDidLoad()
self.inputText.delegate = self
}
Puis conformez-vous à UITextFieldDelegate
dans l'extension de votre contrôleur de vue
extension YourViewController: UITextFieldDelegate {
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
if textField == inputText {
textField.resignFirstResponder()
return false
}
return true
}
}
Bien que les autres réponses fonctionnent correctement, je préfère procéder comme suit:
Dans viewDidLoad (), ajoutez
self.textField.addTarget(self, action: #selector(onReturn), for: UIControl.Event.editingDidEndOnExit)
et définir la fonction
@IBAction func onReturn() {
self.textField.resignFirstResponder()
// do whatever you want...
}