2011-09-16 1 views
5

Ho una vista con una UISearchBar al suo interno. Tuttavia, quando viene cliccato il pulsante "X" nella barra di ricerca, rimuove la tastiera ma non rimuove il testo nel campo di testo della barra di ricerca. Quello che voglio è questo: quando l'utente fa clic sul pulsante x, il testo nel campo di testo viene ripristinato ma la tastiera rimane alzata.Reimposta il testo nel campo di testo di UISearchBar quando si fa clic sul pulsante X, ma non si dimette firstresponder

Come posso fare questo?

risposta

0

provare ad implementare il metodo UISearchBarDelegate-(BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar e restituire NO come risultato.

Es .:

- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar 
    { 
     return NO; 
    } 
+0

non ha aiutami a tutti. – Magnus

8

Questo sembra fare il trucco per me. Accertarsi che l'View Controller è un UISearchBarDelegate

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar 
{ 
    searchBar.text = @""; 
} 
+0

non si attiva quando si fa clic sul piccolo pulsante "X" nel campo di testo. Questo viene attivato solo se la barra di ricerca mostra un pulsante Annulla accanto al campo di testo. – darwin

+0

Questo non è quello che la domanda richiede. Il pulsante X non è il pulsante Annulla, è il pulsante chiaro – Chackle

4

Basta impostare il testo per nil in searchBarCancelButtonClicked metodo delegato:

searchBar.text = nil; 
+0

che non si attiva quando si fa clic sul piccolo pulsante "X" nel campo di testo. Questo viene attivato solo se la barra di ricerca mostra un pulsante Annulla accanto al campo di testo. – darwin

0

per cancellare il testo utilizzare questo searchBar.text = @"";