Puis-je brancher en UISearchBar du Bouton Effacer?

J'ai un UISearchBar dans mon interface et je veux personnaliser le comportement de la petite claire bouton qui s'affiche dans la barre de recherche, après que certains le texte a été saisi (c'est un petit cercle gris avec une croix en elle, apparaît sur le côté droit du champ de recherche).

Fondamentalement, je veux non seulement effacer le texte de la barre de recherche (qui est la valeur par défaut de mise en œuvre), mais aussi de quelques autres choses de mon interface, mais l'appel d'un de mes propres méthodes.

Je ne trouve rien dans la doc de la UISearchBar de la classe ou de l'UISearchBarDelegate protocole - il n'a pas l'air comme vous pouvez directement accéder à ce comportement.

La seule chose que j'ai remarqué est que les docs a expliqué que le délégué de la méthode:

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText;

est appelée après que le bouton effacer est exploité.

J'ai d'abord écrit un peu de code dans la méthode qui a vérifié la barre de recherche de texte à la propriété, et si elle était vide, il avait été défriché, et de faire tous mes autres trucs.

Deux problèmes cependant:

Tout d'abord, pour une raison que je ne peut pas comprendre, même si je dis la barre de recherche pour resignFirstResponder à la fin de ma méthode, quelque chose, quelque part, est mise de nouveau à becomeFirstResponder. Vraiment ennuyeux...

Deuxièmement, si l'utilisateur n'utilise pas le bouton effacer, et supprime simplement le texte dans la barre à l'aide de la touche delete du clavier, cette méthode est lancé et les résultats de la recherche en aller. Pas bonne.

Des conseils ou des pointeurs dans la bonne direction serait génial!

Merci!

InformationsquelleAutor Jasarien | 2009-05-29