65 votes

comment masquer le clavier lorsque la zone vide est touchée sur l'iphone

Normalement, lorsque vous touchez la zone de saisie de texte, le clavier s'affiche et lorsque vous touchez la zone vide de l'écran, le clavier disparaît. Comment faire pour que cela se produise ?

tout comme ce que nous avons vécu lors de l'iphone safari...

Merci.

2voto

Chris Lundie Points 5227

Envoyer resignFirstResponder au contrôle.

0voto

tinpony72 Points 1

J'avais ce problème aussi, c'était très ennuyeux. Mais j'ai découvert comment se débarrasser du clavier par accident. Disons que vous êtes en train d'envoyer un SMS à John, et qu'il y a un clavier qui vous empêche de voir vos conversations et qui réduit donc l'écran que vous pouvez voir. Cliquez sur Messages en haut à gauche, puis sélectionnez une autre personne avec laquelle vous avez déjà échangé des textos, puis cliquez à nouveau sur Messages en haut à gauche. Puis reviens en arrière et sélectionne John. Non, vous êtes de retour à la conversation avec John, mais le clavier a disparu. Ça semble beaucoup, mais c'est assez rapide. On pourrait penser qu'ils ont juste mis un bouton de masquage sur le clavier lol J'espère que ça aide, ou que c'était assez clair.

0voto

Stephen Reed Points 41

Je n'ai pas pu compiler la réponse de Val ci-dessus en utilisant le sélecteur "initWithBlock :".

Ce code fonctionne pour moi. Ajoutez ceci à la méthode définissant la vue - notez que ma vue est composée et que la sous-vue qui doit répondre à l'appui unique est 'chatView'. La vue du champ de saisie qui utilise le clavier est nommée "chatInput".

    // single tap to resign (hide) the keyboard
    UITapGestureRecognizer *singleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapFrom:)];
    singleTapRecognizer.numberOfTouchesRequired = 1;
    singleTapRecognizer.cancelsTouchesInView = NO;
    [chatContent addGestureRecognizer:singleTapRecognizer];

Ajoutez ensuite la méthode de manipulation des robinets.

/**
 * Handles a recognized single tap gesture.
 */
- (void) handleTapFrom: (UITapGestureRecognizer *) recognizer {
    // hide the keyboard
    NSLog(@"hiding the keyboard");
    [chatInput resignFirstResponder]; 
}

0voto

Vijay Dokrimare Points 11

//Vous pouvez aussi faire de cette façon

/Masquer le clavier en touchant l'arrière-plan dans la vue

  • (void) touchesBegan :(NSSet *)touches withEvent :(UIEvent *)event { [[self view] endEditing:YES] ; }

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