2013-07-13 16 views
27

Używam UISearchBar, gdy wprowadzam tekst na UISearchBar pokazów na klawiaturze. W tym czasie klawisz powrotu klawisza to "Wyszukaj". Chcę zaimplementować zdarzenie po naciśnięciu przycisku wyszukiwania klawiatury. Jak mogę wdrożyć akcję? Na UITextField maPrzycisk wyszukiwania klawiatury UISearchbar Działanie

-(BOOL)textFieldShouldReturn:(UITextField *)textField; 

Ale UISearchBar nie ma działania zwrotnego.

Dziękuję za pomoc.

+0

możliwe duplikat [? Jak odwołać klawiaturę dotykając przycisku wyszukiwania na klawiaturze dotyczących UISearchBar] (http://stackoverflow.com/questions/8558339/how-i-dismiss-keyboard-on-tapping-search-button-on-keyboard-regarding-uisearchba) –

Odpowiedz

74

Dodaj UISearchBarDelegate w .h

ustawić także SearchBar za obiekt delegata do siebie.

Dodaj do tego metoda UISearchBarDelegate za:

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar 
{ 
    [searchBar resignFirstResponder]; 
    // Do the search... 
} 
+0

Dzięki za pomoc. Źle zrozumiałem. –

+0

Na pewno nie ma problemu. Czy możesz zaakceptować tę odpowiedź, jeśli to pomogło? – Milo

2

Metoda jest metodą delegowaną textField, a nie tą, której szukasz. Potrzebna jest metoda o nazwie searchButtonClicked, have a look here.

8

w Swift 3:

func searchBarSearchButtonClicked(_ searchBar: UISearchBar) { 
     searchBar.resignFirstResponder() 
} 
Powiązane problemy