2010-12-14 13 views
4

AppleのTableSearchサンプルリファレンスを使用してUISearchDisplayControllerを実装しました。私のリストには10​​.000以上の要素が含まれているため、ユーザーが入力するすべての文字に対してフィルタリングを実行するには遅すぎます。私は次のコードでユーザーが検索ボタンをクリックしたときに検索するように制限することができました。今インスタント検索のないUISearchDisplayController:TableViewの調光を制御するにはどうすればよいですか?

- (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; 
} 

、私の問題は、ユーザーが検索ブトンをクリックするまで、すぐにユーザーがテーブルビューの調光が消えた最初の文字を入力し、私はそれを維持したいと薄暗くていること、です。 (または検索をキャンセルします)

答えて

3

searchDisplayControllerはブラックボックスなので、searchResultsTableView(searchBarの最初のキーを押すと表示されます)を表示するときの制御はありません。

resultsTableViewに半透明のビューを表示して、searchDisplayControllerによって提供される初期調光の外観を表示できますが、searchResultsTableViewは引き続き表示されます。

- (BOOL)searchDisplayController:(UISearchDisplayController*)controller 
    shouldReloadTableForSearchString:(NSString*)searchString 
{ 
    // display a translucent view over the searchResultsTableView and 
    // make sure it's only created on first key press 
    return NO; 
} 

その他のオプションは、独自のコードを作成することです。

関連する問題