J'ai un UISearchBar et sur la méthode déléguée je cache le clavier lorsque le champ de texte est effacé:Hiding du clavier
- (void)searchBar:(UISearchBar *)filterBar textDidChange:(NSString *)filterText {
NSLog(@"filter: %@", filterText);
if ([filterText length] == 0) {
NSLog(@"hiding keyboard");
[filterBar resignFirstResponder ];
Maintenant, quand j'utilise le bouton backspace pour effacer le terme de recherche tout est bien. Le clavier se cache lorsque la recherche devient vide. Ce n'est pas le cas lorsque j'appuie sur le bouton «croix» pour effacer complètement le champ de recherche.
Eh bien, pas tout à fait vrai. J'appelle resignFirstResponder et cache le clavier - vous ne pouvez pas le voir car il revient directement. Je l'ai trouvé en observant le clavier afficher/masquer les événements.
Alors, comment se fait-il que le clavier s'affiche à nouveau? Comment puis-je empêcher cela?
je l'ai déjà essayé de marcher sur les ... subviews du UISearchBar et appeler aussi resignFirstResponder, mais à moins que je l'ai fait quelque chose de mal - qui ne résout pas non plus.
Mise à jour:
En fait, je viens de recevoir le clavier pour ne pas désactiver le bouton « Terminé » :-D ... donc je vais « arrêter » descendre cette route comme Kevin suggéré. Je voudrais quand même savoir pourquoi le clavier est revenu comme ça.
"J'ai déjà essayé de parcourir toutes les sous-vues de l'UISearchBar et d'appeler aussi resignFirstResponder sur celles-ci ... mais à moins que j'ai fait quelque chose de mal - ça ne marche pas Ne résous pas ça non plus. ... donc tu es sûr que ça marche? – tcurdt
Oui, je suis sûr que cela a fonctionné il y a six mois quand j'étais dans une situation similaire - je ne suis jamais descendu cette route et j'ai enlevé ce code plus tard - mais mes logs svn me disent que ça fonctionnait à ce moment là:) –