L'utilisation de comeFirstResponder empêche le bouton d'annulation de fonctionner
-
21-12-2019 - |
Question
j'ai un UISearchDisplayController
(searchDisplayCtr) et un UISearchBar
(barre de recherche).J'essaie de mettre l'accent sur la barre de recherche et d'afficher le clavier lorsque je clique sur l'icône de recherche dans le défilement alphabétique à droite.Si j'inclus,
[self.searchDisplayCtr setActive:YES];
[self.searchDisplayCtr.searchBar becomeFirstResponder];
Il affiche le clavier et sélectionne la barre de recherche, mais le bouton Annuler ne fonctionne pas de manière cohérente.J'ai essayé de démissionner du premier intervenant, en définissant actif sur NON et les deux searchDisplayControllerWillEndSearch
, mais ça n'aide pas.Le bouton Annuler ne fonctionnera que si aucune autre lettre de l’alphabet n’a encore été cliquée.
La solution
Il est apparemment nécessaire de faire défiler vers le haut du tableau avant de définir le premier intervenant.Le code a fini par être
[tableView setContentOffset:CGPointMake(0, 0) animated:NO];
[self.searchBar becomeFirstResponder];