我有一個帶有搜索欄的表格視圖,我想在文本爲空時搜索。ios - 當搜索文本爲空時,UISearchDisplayDelegate不搜索
我要顯示所有數據,當搜索文本是空的(當用戶不輸入任何搜索文本)
注 - 事情做工精細,在輸入搜索文本時,問題僅當搜索文本爲空時
不幸的是,當搜索文本爲空時,不會使用self.arForSearch
數組的內容。
我甚至嘗試用"p"
替換文本,但數據未加載。
問題 如何在用戶未輸入搜索字符串時顯示所有數據?
代碼如下粘貼:
- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
{
if(searchString.length == 0)
{
searchString = @"p";
NSLog(@"string was empty but was replaced by p");
}
[self filterContentForSearchText:searchString];
// Return YES to cause the search result table view to be reloaded.
return YES;
}
- (void)filterContentForSearchText:(NSString*)str{
// for inCaseSensitive search
str = [str uppercaseString];
NSMutableArray *ar=[NSMutableArray array];
for (NSDictionary *d in self.arForTable) {
NSString *strOriginal = [d valueForKey:@"name"];
// for inCaseSensitive search
strOriginal = [strOriginal uppercaseString];
if([strOriginal hasPrefix:str]) {
[ar addObject:d];
}
}
self.arForSearch=[NSArray arrayWithArray:ar];
NSLog(@"self.arForSearch.count = %i", self.arForSearch.count);
}
你有沒有設置委託? – parilogic 2012-07-26 06:36:50
是的,我已經在界面生成器中設置了委託,它似乎在輸入搜索文本時正常工作。 – user1046037 2012-07-26 06:50:45
如果搜索文本不爲空,請發佈您的代碼如何過濾。 – 2012-07-26 07:06:26