7

Sto usando UISearchBar nel mio codice. Ho importato il suo delegato nel file di intestazione e implementato anche alcuni metodi delegati nel file di implementazione.Come posso disabilitare/abilitare il pulsante Cerca della tastiera di UISearchBar?

Quando si tocca il UISearchBar, verrà visualizzata una tastiera per immettere del testo. Il tasto Invio della tastiera è il pulsante "Search". Sarà disabilitato per impostazione predefinita. Quando entriamo in un personaggio, verrà abilitato. (Ho ragione?)

Qui il problema arriva .. Voglio abilitare il tasto di ritorno della tastiera UISearchBar quando l'utente digita almeno due lettere.

È possibile? Se sì, come possiamo farlo?

Grazie

risposta

7

Si puo' t disabilita il pulsante di ricerca. Che cosa si può fare è utilizzare le UISearchBarDelegate metodi per capire se si deve agire sul pulsante Cerca viene cliccato, in questo modo:

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar { 
    if (searchBar.text.length < 2) { 
     return; 
    } 
    else { 
     // Do search stuff here 
    } 
} 

Il Apple Documentation per questo è molto utile pure, ed è un ottimo punto di partenza per personalizzare il comportamento della searchBar.

+1

Ma non è chiaro per l'utente se il pulsante di ricerca è attivo, ma non fare nulla –

+0

Come ha detto @NikKov. disabilita (cambia in grigio) il pulsante di ricerca. –

-1

si può provare questo

if([self.searchBar.text length] > 2) 
{ 
    [self.searchBar resignFirstResponder]; 
} 
+1

Oh .... mi dispiace, ha ottenuto il mio errore .. :( – Krunal

1

risposta breve è no ...

più lungo, hackier e più esotico uno è qui: How to disable/enable the return key in a UITextField?

+0

Per specificamente "Posso letteralmente disabilita la chiave di ritorno per la barra di ricerca ", questa è la risposta corretta eccetto che il requisito dell'OP potrebbe essere soddisfatto altrimenti – NSNoob

0

Questo è come lo faccio:

if([searchbar.text length] == 0) { 
     [searchBar performSelector: @selector(resignFirstResponder) 
          withObject: nil 
          afterDelay: 0.1]; 
    } 
0

Si può provare questo,

- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope{ 
     if (searchText.length>=2) { 
     [Main_SearchBar resignFirstResponder]; 

     // Do your code here 
     } 
} 
Problemi correlati