gpt4 book ai didi

ios 搜索栏范围按钮不更新结果 TableView

转载 作者:可可西里 更新时间:2023-11-01 06:10:50 25 4
gpt4 key购买 nike

我正在尝试在我的表格 View 中实现搜索栏。当用户输入文本时,过滤效果很好。当搜索栏中有文本时,范围按钮也起作用(它过滤文本过滤的结果)。我的问题是当搜索栏范围按钮中没有文本时不起作用。 filtering 方法过滤数组成功;但 tableview 没有更新。我试过了;

searchBar:(UISearchBar *)searchBar selectedScopeButtonIndexDidChange:(NSInteger)selectedScope

但是没有用。我在用

-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString {
// Tells the table data source to reload when text changes
[self filterContentForSearchText:searchString
scope:[[self.searchDisplayController.searchBar scopeButtonTitles] objectAtIndex:[self.searchDisplayController.searchBar selectedScopeButtonIndex]]];
// Return YES to cause the search result table view to be reloaded.
return YES;

-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchScope:(NSInteger)searchOption {
// Tells the table data source to reload when scope bar selection changes
[self filterContentForSearchText:self.searchDisplayController.searchBar.text
scope:[[self.searchDisplayController.searchBar scopeButtonTitles] objectAtIndex:searchOption]];
// Return YES to cause the search result table view to be reloaded.
return YES;

用于文本过滤。我也试过重新加载数据,它也没有用。我不明白为什么 tableview 在文本更改后更新,但它在范围栏更改后不更新。

最佳答案

我解决了这个问题。我不再使用 searchDisplayController,而是使用 textDidChangeselectedScopeButtonIndexDidChange。此外,我没有使用两个 TableView (普通和 self.searchDisplayController.searchResultsTableView),而是使用单个 TableView 并更改了它的数据源,目前看来这解决了我的问题。但仍然无法弄清楚为什么 shouldReloadTableForSearchScope: 不调用 cellForRowAtIndexPath: 并更新我的 TableView

关于ios 搜索栏范围按钮不更新结果 TableView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14456099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com