La mia app utilizza UISearchDisplayController
. Quando l'utente ha inserito un termine di ricerca, desidero che rimanga visibile nella barra di ricerca. Funziona se l'utente sceglie uno dei risultati corrispondenti, ma non se l'utente fa clic sul pulsante "Cerca".Mantieni visibile il termine di ricerca quando UISearchDisplayController è inattivo
Questo funziona:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (tableView == self.searchDisplayController.searchResultsTableView) {
NSString *selectedMatch = [self.searchMatches objectAtIndex:indexPath.row];
[self.searchDisplayController setActive:NO animated:YES];
[self.searchDisplayController.searchBar setText:selectedMatch];
return;
}
...
Ma se faccio la stessa cosa in -searchBarSearchButtonClicked:
testo non rimane nella barra di ricerca. Qualche idea su come posso realizzare questo in questa situazione?
Correlato, se si imposta il testo della barra di ricerca (ma si lascia inattivo lo UISearchDisplayController
) si attiva la visualizzazione di searchResultsTableView. Voglio solo mostrare che quando l'utente tocca la barra di ricerca.
Edit: trovato una soluzione per impostare il testo di una barra di ricerca senza mostrare il searchResultsTableView in qualsiasi momento:
// This hacky YES NO is to keep results table view hidden (animation required) when setting search bar text
[self.searchDisplayController setActive:YES animated:YES];
[self.searchDisplayController setActive:NO animated:YES];
self.searchDisplayController.searchBar.text = @"text to show";
Meglio ancora suggerimenti accolti!
Ah, grazie! Stavo facendo '[self.searchController setActive: NO animated: YES]; self.searchController.searchBar.text = searchBar.text; 'ma ovviamente searchBar.text non è più quello che pensavo fosse dovuto al metodo' setActive' che svuotava la barra di ricerca. –