2012-07-28 9 views
5

Nel mio tableViewController con una barra di ricerca che sto usando il seguente metodo:SearchBar textDidChange

-(void) searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText 
{ 
    ...my code 
} 

e funziona bene quando si digita il testo direttamente nella barra di ricerca.

Il problema che ho ora è che voglio richiamare questo metodo programatically - il che significa che io voglio riempire nella barra di ricerca del mio codice che io so come fare (in realtà io sono la selezione di un recente cercato parola nella mia lingua applicazione dizionario) e chiamare qualcosa del tipo:

[SearchBar textDidChange: recentlySearchedWord] 

ma questo semplicemente non funziona da nessuna parte nel mio codice.

Per favore aiutatemi se avete qualche idea su come risolvere questo.

Grazie,

Tim

risposta

7

Se si implementa il metodo di UISearchBar delegato - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText nel controller della vista (o di qualsiasi classe) e si desidera chiamare quel metodo all'interno della stessa classe, che è ciò che si vuole fare sto assumendo, che avrebbe dovuto chiamare

[self searchBar:SearchBar textDidChange:recentlySearchedWord]; 

con SearchBar essendo l'istanza del UISearchBar si fa riferimento.

+0

Thanks a lot. Questo è proprio quello che stavo cercando :) – user1454623

+0

come si fa a fare questo in rapido? –

+0

@JosephAstrahan intendi: searchBar (searchBar, textDidChange: recentlySearchedWord) –

1

textDidChange non è un metodo di classe. Così, invece di chiamare:

[SearchBar textDidChange: recentlySearchedWord]; 

chiamata

[self searchBar:mySearchBar textDidChange: recentlySearchedWord]; 

O se textDidChange è in una classe diversa, utilizzare l'istanza della classe invece di sé.

-1

Si potrebbe anche provare a utilizzare questo codice se rende tutto più semplice.

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
<style> 
 
input[type=text] { 
 
    width: 100%; 
 
    box-sizing: border-box; 
 
    border: 2px solid #ccc; 
 
    border-radius: 4px; 
 
    font-size: 16px; 
 
    background-color: white; 
 
    background-image: url('searchicon.png'); 
 
    background-position: 10px 10px; 
 
    background-repeat: no-repeat; 
 
    padding: 12px 20px 12px 40px; 
 
} 
 
</style> 
 
</head> 
 
<body> 
 

 
<p>Input with icon:</p> 
 

 
<form> 
 
    <input type="text" name="search" placeholder="Search.."> 
 
</form> 
 

 
</body> 
 
</html>

+4

Non ha chiesto informazioni su HTML, lo sai! – Danh