Méthode actualisée (recommandée) :
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self.view endEditing:YES];
}
Cela mettra fin à l'édition sur toutes les sous-vues et démissionnera le premier intervenant.
Autre méthode (énumération de toutes les vues de texte) :
Voici un pas à pas pour cela :
Ajoutez un IBAction à votre contrôleur de vue, tel que - (IBAction)backgroundTouch :(id)sender
Dans l'action backgroundTouch, vous devez envoyer le message resignFirstResponder à toutes les zones de texte de votre vue. C'est regrettable mais nécessaire car il n'y a actuellement aucun moyen de récupérer l'objet qui a le statut FirstResponder. Cela devrait ressembler à quelque chose comme ceci :
- (IBAction)backgroundTouch:(id)sender {
[someTextBox resignFirstResponder];
[anotherTextBox resignFirstResponder];
}
Ajoutez un contrôle de bouton à la vue, en le dimensionnant de manière à couvrir toute la zone visible (à l'exception de la barre d'état ou de tout contrôleur d'onglet ou de navigation). Sélectionnez le bouton, puis allez dans le menu Layout et sélectionnez Send To Back. Définissez également le Type du bouton sur personnalisé, qui est invisible si vous ne fournissez pas de code de dessin spécifique pour ce bouton.
Reliez l'événement Touch Up Inside du bouton à l'action backgroundTouch : et essayez-le.