web-dev-qa-db-fra.com

Comment déclencher le bouton d'annulation dans UISearchBar?

Comment déclencher un bouton d'annulation par programme dans UISearchBar, comme si vous avez appuyé sur le bouton d'annulation?

J'ai un UISearchBar au sommet d'un UITableView et après une recherche, quand quelqu'un sélectionne une ligne, je veux déclencher le bouton d'annulation par programme dans le UISearchBar?

EDIT: Sans interaction de l'utilisateur.

39
Marckaraujo

Pour un contrôleur de vue utilisant un contrôleur d’affichage de recherche, vous pouvez définir:

self.searchDisplayController.active = NO;
// or:
[self.searchDisplayController setActive:NO animated:YES];

pour rejeter l'interface de recherche.

59
Martin R

Vous devez implémenter la UISearchBarDelegate. Une fois que vous avez fait cela, utilisez:

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar

Indique au délégué que le bouton d'annulation a été exploité.

Alors utilisez:

[self searchBarCancelButtonClicked:yourSearchBar];
30
rog

Pour le nouveau UISearchController (introduit en 2014 avec iOS 8), vous pouvez appeler:

[self.searchController setActive:FALSE];

ou

self.searchController.active = FALSE;

(Pas de drapeau pour l'animation, j'ai toujours trouvé que ça s'anime.)

23
Nick

Comme pour iOS 8, UISearchController est utilisé, pour réaliser l'action du bouton d'annulation par programmation, Utilisez:

[self.searchController setActive:NO]; 
5
Rashmikant Makwana

Pour la version 4.2 de Swift, vous pouvez écrire le code suivant:

searchController?.isActive = false
0
Kosrat D. Ahmad