Je déplace mon affichage lorsqu'un champ de texte est enfoncé afin d'obtenir une vue correcte lorsque le clavier apparaît. Maintenant, quand le bouton du clavier Terminé est pressé, je voudrais retourner la vue à son état initial. Comment gérer une action quand on appuie sur le bouton du clavier?Handle Keyboard Done event appuyé sur Iphone
Répondre
Créez un IBAction
et connectez-le à la méthode didEndOnExit
du champ de texte. Ensuite, dans l'implémentation de cette méthode, vous devez mettre [yourTextFieldOutlet resignFirstResponder];
, ce qui désactivera le champ de texte.
La bonne façon de faire est d'observer les notifications UIKeyboardDidShowNotification
et UIKeyboardDidHideNotification
comme détaillé dans Apple's documentation.
Si vous voulez savoir quand le bouton Done
a été pressé, mettre en œuvre
- (BOOL)textFieldShouldReturn:(UITextField *)textField
Dans votre délégué. Il devrait être appelé quand le bouton de retour est pressé. Voir API documentation pour plus de détails.
@freespace a raison, c'est tout ce que vous devez faire.
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
return [textField resignFirstResponder];
}
Touchez le bouton et fait tapette, le clavier est parti.
Si vous voulez juste savoir que Done a été pressé, vous pouvez demander à être informé de cet événement de contrôle:
[textField addTarget:self
action:@selector(donePressed)
forControlEvents:UIControlEventEditingDidEndOnExit];
C'est la version du code de IB de didEndOnExit
.