108 votes

Comment faire disparaître la touche retour du clavier de l'iPhone ?

J'ai deux UITextFields (par exemple le nom d'utilisateur et le mot de passe), mais je ne peux pas me débarrasser du clavier lorsque j'appuie sur la touche retour du clavier. Comment faire ?

241voto

Sid Points 6025

Vous devez d'abord vous conformer à la UITextFieldDelegate dans le fichier d'en-tête de votre View/ViewController comme suit :

@interface YourViewController : UIViewController <UITextFieldDelegate>

Ensuite, dans votre fichier .m, vous devez implémenter ce qui suit UITextFieldDelegate méthode de protocole :

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];

    return YES;
}

[textField resignFirstResponder]; s'assure que le clavier est désactivé.

Assurez-vous que vous configurez votre view/viewcontroller pour qu'il soit le délégué de l'UITextField après avoir initialisé le champ de texte dans le fichier .m :

yourTextField = [[UITextField alloc] initWithFrame:yourFrame];
//....
//....
//Setting the textField's properties
//....    
//The next line is important!!
yourTextField.delegate = self; //self references the viewcontroller or view your textField is on

19voto

Nick Weaver Points 30418

Implémentez la méthode UITextFieldDelegate comme suit :

- (BOOL)textFieldShouldReturn:(UITextField *)aTextField
{
    [aTextField resignFirstResponder];
    return YES;
}

8voto

Caleb Points 72897

Voir Gestion du clavier pour une discussion complète sur ce sujet.

6voto

cschwarz Points 390

Vos UITextFields doivent avoir un objet délégué (UITextFieldDelegate). Utilisez le code suivant dans votre délégué pour faire disparaître le clavier :

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
}

Cela devrait fonctionner jusqu'à présent...

6voto

Ema Points 41

Il m'a fallu quelques essais, j'avais le même problème, mais cela a fonctionné pour moi :

Vérifiez votre orthographe à -

(BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];

J'ai corrigé le mien à l'adresse suivante textField au lieu de textfield et bingo !! ça a marché...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X