2013-07-13 13 views
27

Sto usando UISearchBar quando inserisco il testo su UISearchBar la tastiera mostra. A quel tempo, il tasto di ritorno della tastiera è "Cerca". Voglio implementare l'evento quando premo il pulsante di ricerca della tastiera. Come posso implementare l'azione? Su UITextField haPulsante di ricerca tastiera UISearchbar Azione

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

Ma UISearchBar non ha azione di ritorno.

Grazie per il vostro aiuto.

+0

possibile duplicato di [? Come posso respingere tastiera toccando il pulsante di ricerca sulla tastiera per quanto riguarda UISearchBar] (http://stackoverflow.com/questions/8558339/how-i-dismiss-keyboard-on-tapping-search-button-on-keyboard-regarding-uisearchba) –

risposta

74

Aggiungi UISearchBarDelegate in .h

impostare anche delegato oggetto di SearchBar a sé.

Aggiungi il metodo del UISearchBarDelegate:

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

Grazie per l'aiuto. Ho frainteso. –

+0

Sicuramente nessun problema. Potresti accettare questa risposta se aiutasse? – Milo

2

Il metodo textFieldShouldReturn è un metodo delegato textField e non quello che si sta cercando. Quello che ti serve è un metodo UISearchBarDelegate chiamato searchButtonClicked, have a look here.

8

In Swift 3:

func searchBarSearchButtonClicked(_ searchBar: UISearchBar) { 
     searchBar.resignFirstResponder() 
}