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];
}