2013-03-13 13 views
11

Ciao sto usando un UIsearchBar nella mia app, ho provato tutti i metodi nel Delegato UISearchBar per chiudere la tastiera ma non serve. Qualcuno può aiutarmi.Come chiudere la tastiera usando i metodi Delegate UIsearchBar? ho provato ogni metodo ma non uso.

alcuni codici ho provato

1.

-(void)searchBarTextDidEndEditing:(UISearchBar *)searchBar 
{ 
    [searchBar resignFirstResponder]; 
} 

2.

-(BOOL) searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { 

    if([text isEqualToString:@"\n"]) 
    { 
     [searchBar resignFirstResponder]; 
     return NO; 
    } 
    return YES; 

} 

3.

- (void)searchBarCancelButtonClicked:(UISearchBar *) searchBar 
{ 
    [searchBar resignFirstResponder]; 
} 
+1

sei stato impostato il delegato per sé? – Rushi

+1

Utilizzare un punto di interruzione e verificare che vengano chiamati i metodi delegati? – Ankit

+0

è quel metodo delegato che chiama o non hai aggiunto o non – 08442

risposta

6

Prova simili lavoro It'l

dare delegato alla barra di ricerca e controllare tempo IBOutlet collegato o non

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar { 
    [search resignFirstResponder]; 
}   
+1

ho provato anche il codice precedente, ma l'operazione è stata completata – Logunath

+1

Grazie ragazzi, ho risolto il problema usando UIsearchDisplayDelegate anziché UISearchDelegate. Hai bisogno del tuo supporto continuo. – Logunath

25

Prima di tutto è necessario implementare UISearchBarDelegate nel vostro check classe & se avete collegato il vostro per UISearchBar o no?

Se si aggiunge UISearchBar tramite IB, è necessario selezionare la proprietà delegata di UISearchBar sul proprietario del file. Assicurati di collegare correttamente IBOutlet per il codice UISearchBar nel codice.

Se si aggiunge UISearchBar tramite codice allora si dovrebbe impostare il delegato se stessi nel codice come questo searchBar.delegate=self;

passo successivo è quello di assicurarsi che i metodi delegato sono chiamati, che è evidente se si è collegata delegato correttamente , la cosa migliore da controllare è mettere il puntatore di interruzione nel tuo codice o stampare tramite NSLog.

Infine utilizzare questo metodo per nascondere la tastiera se si desidera nascondere quando l'utente fa clic per cercare

- (void) searchBarSearchButtonClicked:(UISearchBar *)searchBar { 
    [searchBar resignFirstResponder]; 
} 

Oppure si potrebbe provare quando terminato l'editing

- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar { 
    [searchBar resignFirstResponder]; 
} 
+2

- (void) searchBarTextDidEndEditing: (UISearchBar *) searchBar { [searchBar1 resignFirstResponder]; } – Logunath

Problemi correlati