2010-06-26 6 views
12

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

11

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.

19

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.

4

@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.

0

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.