sto cercando l'attuazione di un UISearchBar che recuperare le informazioni da un URL, e con il metodo di default:UISearchBar rilevare quando tipo di stop degli utenti e non cercare immediatamente in modo da rilevare pausa
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{
posso rilevare immediatamente quando il testo cambia ed esegue il recupero dell'URL, ma in questo modo, il tipo di testo è lento perché l'iPhone sta cercando l'url, quindi voglio iniziare il recupero dell'URL quando l'utente smette di scrivere per qualche secondo, quindi voglio rilevare la pausa della digitazione per aggiornare la vista tabella recuperando le informazioni dall'URL. Ho trovato un vecchio post di questo richiesta e ho provato una soluzione che per me non lavoro:
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(request:) object:searchText];
//.....
[self performSelector:@selector(request:) withObject:searchText afterDelay:1.5];
}
-(void)request:(NSString *)myString
{
NSLog(@"%@",myString);
}
in questo modo quando sto scrivendo il metodo di richiesta non viene chiamato, ma quando mi fermo a digitare E ' chiamato per ogni carattere che digito, quindi è lo stesso del metodo predefinito, ho sbagliato qualcosa? o l'implementazione non è corretta?
come si implementa la prima opzione con NSString? puoi scrivere un esempio di codice per favore? – Piero
ok, scriverò qualcosa. Non è garantito che funzioni senza errori, dal momento che non ho provato questo approccio nel codice reale. – rgeorge
cosa sta facendo questa linea? [self request: searchDelayer.userInfo]; ? –