Apple のTableSearchサンプル リファレンスを使用して UISearchDisplayController を実装しました。私のリストには 10,000 を超える要素が含まれているため、ユーザーが入力するすべての文字に対してフィルタリングを実行するには遅すぎます。ユーザーが次のコードで検索ボタンをクリックしたときに検索を制限することができました。
- (void)searchBarSearchButtonClicked:(UISearchBar*)searchBar
{
[self filterContentForSearchText:[self.searchDisplayController.searchBar text]
scope:[self.searchDisplayController.searchBar selectedScopeButtonIndex]];
[self.searchDisplayController.searchResultsTableView reloadData];
}
- (BOOL)searchDisplayController:(UISearchDisplayController*)controller
shouldReloadTableForSearchString:(NSString*)searchString
{
return NO;
}
さて、私の問題は、ユーザーが最初の文字を入力するとすぐにテーブル ビューの淡色表示が消え、ユーザーが [検索] ボタンをクリックするまで淡色表示のままにしたいということです。(または検索をキャンセルします。)