2011-12-09 14 views

risposta

16

È questione può essere un duplicato di How can I change strings of "Cancel" button, "No Results" label in UISearchBar of UISearchDisplayController?

Ecco una modifica della risposta data c'è:

-(BOOL)searchDisplayController:(UISearchDisplayController *)controller 
     shouldReloadTableForSearchString:(NSString *)searchString { 
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 0.001); 
    dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ 
     for (UIView* v in self.sbc.searchResultsTableView.subviews) { 
      if ([v isKindOfClass: [UILabel class]] && 
        [[(UILabel*)v text] isEqualToString:@"No Results"]) { 
       // .. do whatever you like to the UILabel here .. 
       break; 
      } 
     } 
    }); 
    return YES; 
} 

Fondamentalmente quello che stai chiedendo di fare è semplicemente di accedere al UILabel che visualizza il Testo "Nessun risultato". Non esiste un modo ufficiale per farlo. La soluzione, come suggerito su quella pagina, è cercare UILabel (enumerando tutte le sottoview della tabella dei risultati di ricerca) e modificarlo. Generalmente non posso incoraggiare questo genere di cose, ma trovo che il rifiuto di Apple di fornire un modo ufficiale per affrontare questa etichetta "No Results" sia assolutamente antipatico, quindi non ci sono restrizioni in questo particolare combattimento.

+8

Questo non funzionerà se la lingua del dispositivo non è l'inglese. –

+1

@AlastairStuart Buon punto. Colui che vive con la spada muore per la spada; Ho * detto * questa è stata una soluzione pazzesca. Apple ha davvero bisogno di lasciarci personalizzare questo in qualche modo ufficiale. – matt

Problemi correlati