Je crée une option UISearchBar dans la barre de navigation de mon application. Mon application comprend plusieurs vues et sous-vues. J'ai cette vue principale qui a 3 autres points de vue sur lui-même. l'un d'eux est vide (pour l'instant), les 2 autres ont des vues de table sur eux.résilier le clavier lorsque vous perdez votre focus sur uisearchbar
Je veux que mon clavier s'affiche lorsque je suis en train de chercher et que je me cache lorsque je fais la recherche proprement dite ou lorsque je touche/clique en dehors de la barre de recherche. Im en utilisant searchbardelegate comme requis.
Je suis capable de masquer le clavier en utilisant [searchBar resignFirstResponder] comme suit.
- Lorsque vous appuyez sur la touche de retour.
- Lorsque j'annule la recherche manuellement
- Lorsque j'appuie sur l'une des touches du clavier pour rechercher ou annuler.
Quand je touche une partie vide de l'écran à l'aide
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [[event allTouches] anyObject]; if ([mySearchBar isFirstResponder] && [touch view] != mySearchBar) { [mySearchBar resignFirstResponder]; } [super touchesBegan:touches withEvent:event]; }
Ce que je semble pas être en mesure de faire est de rendre répondre à toucher un de mes 2 tableviews. Ou lorsque je remplis la vue principale pour contenir quelque chose de complètement différent. J'ai essayé de changer la méthode touchesbegan pour démissionner de la barre de recherche en touchant les vues de table mais cela n'a pas fonctionné jusqu'à présent.
J'ai essayé plusieurs autres choses trouvées par mon cher ami mr. google, mais tout semble être quelque chose d'autre que j'ai besoin.
Quelqu'un at-il une idée de ce que je pourrais faire pour résoudre ce problème? Il semble que, lors de l'utilisation de points d'arrêt, la méthode touchesbegan réponde à la vue de fond, mais ne répond pas lorsque je touche les vues de table ou la barre de navigation (contenant la barre de recherche).