2013-04-11 12 views
35

Jak wyzwalać programowo przycisk anulowania w UISearchBar, tak jak w przypadku naciśnięcia przycisku anulowania?Jak wywołać przycisk anulowania w UISearchBar?

Mam UISearchBar w górnej części UITableView i po wyszukiwaniu, gdy ktoś wybrać wiersz, chcę aktywować programowo przycisk anulowania w UISearchBar?

EDYTOWANIE: Bez interakcji użytkownika.

+0

Masz kontroler ekranu wyszukiwania? –

+0

@MartinR, Yes .. – Marckaraujo

Odpowiedz

54

Dla kontrolera widoku za pomocą kontrolera wyświetlacza wyszukiwania, można ustawić

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

aby zamknąć interfejs wyszukiwarki.

+0

Aeew, dzięki! to działa! Po prostu nie wiem, dlaczego dostałem głos, dziękuję za uwagę. – Marckaraujo

+0

@Marckaraujo: Nie ma za co. –

28

Musisz wdrożyć UISearchBarDelegate. Gdy już to zrobisz, zastosowanie:

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar 

Informuje delegata, że ​​przycisk anulować został wykorzystany.

Następnie użyj:

[self searchBarCancelButtonClicked:yourSearchBar]; 
+0

Nie, muszę to zrobić programowo. bez interakcji użytkownika. – Marckaraujo

+0

Źle zrozumiałem. Zobacz edytowaną odpowiedź. – rog

+2

Dobra sugestia, rog. Zrobiłem to po swojemu i działa świetnie! – iWheelBuy

20

Dla nowego UISearchController (wprowadzony w 2014 roku z iOS 8) można nazwać:

[self.searchController setActive:FALSE]; 

lub

self.searchController.active = FALSE; 

(Brak flagę animacji, Znalazłem to zawsze ożywia.)

+0

Próbowałem powyższego kodu. Wygląda na to, że pracuję w demo, które znalazłem, ale nie działa w moim kodzie. Czy masz jakiś pomysł? obecnie używa self.searchDisplayController? .setActive (false, animated: true) do odrzucenia kontrolera wyszukiwania, ale obawiam się, ponieważ jest to wycofany kod. – vinbhai4u

+0

@ vinbhai4u trudno powiedzieć z twoim małym komentarzem. Powinieneś przesłać nowe pytanie, w którym wyjaśnisz rzeczy bardziej szczegółowo. – Nick

+0

Powyższy kod działa poprawnie – wuf810

4

Jeśli chodzi o iOS 8, UISearchController jest używany, aby programowo wykonać czynność przycisku anulowania, Zastosowanie:

[self.searchController setActive:NO]; 
Powiązane problemy