gpt4 book ai didi

objective-c - 第二次点击后搜索方法不起作用

转载 作者:行者123 更新时间:2023-11-29 13:32:57 25 4
gpt4 key购买 nike

我的 UISearchDisplayController 有问题,搜索工作不正常。

这是我的代码:

    - (void)filterContentForSearchText:(NSString*)searchText 
scope:(NSString*)scope
{
[self.searchResults removeAllObjects];

for (int i = 0; i < [temp_category count]; i++) {
BOOL foundResult = FALSE;

if ([[temp_category objectAtIndex:i] rangeOfString:searchText].location != NSNotFound) {
foundResult = TRUE;
}
if ([[price_producttitle objectAtIndex:i] rangeOfString:searchText].location != NSNotFound) {
foundResult = TRUE;
}
if ([[price_type objectAtIndex:i] rangeOfString:searchText].location != NSNotFound) {
foundResult = TRUE;
}
if ([[price_description objectAtIndex:i] rangeOfString:searchText].location != NSNotFound) {
foundResult = TRUE;
}
if (foundResult) {

NSNumber *result = [NSNumber numberWithInt:i];
if ([self searchResults] == nil) {
NSMutableArray *array = [[NSMutableArray alloc] init];
[self setSearchResults:array];
[array release];
}

[searchResults addObject:result];

}
}

NSLog (@"array = %i", [searchResults count]);
NSLog(@"%@",searchResults);
}

-(BOOL)searchDisplayController:(UISearchDisplayController *)controller
shouldReloadTableForSearchString:(NSString *)searchString
{

[self filterContentForSearchText:searchString
scope:[[self.searchDisplayController.searchBar scopeButtonTitles]
objectAtIndex:[self.searchDisplayController.searchBar
selectedScopeButtonIndex]]];

return YES;

}

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller
shouldReloadTableForSearchScope:(NSInteger)searchOption
{
[self filterContentForSearchText:[self.searchDisplayController.searchBar text]
scope:[[self.searchDisplayController.searchBar scopeButtonTitles]
objectAtIndex:searchOption]];

return YES;
}

但我仍然很困惑,因为当我从第一个字母开始搜索时,它给出了正确的匹配项。但是当我输入第二个字母时,它只显示一个结果(据我的数据样本所知,还有更多)。我做错了什么。我认为这与用户输入文本的时间有关,但我很困惑应该使用哪种方法。

我现在拥有的代码是以下内容的组合: this教程和 this所以问题。

有人可以给我一个好的方向提示吗?显示结果还好,只是这方面困扰我。我认为这与触发方法和 [self.searchResults removeAllObjects]; 有关。

最佳答案

我想添加我的代码,但问题是我仍然使用上面的代码,但我手动实现了 UISearchBar(我在教程的其他地方找到了它)而不是使用 SearchDisplayController。我在使用 SearchDisplayController 时也遇到了导航栏消失的问题,这给了我足够的理由自己实现它而不是使用 SearchDisplayController。它给你更多的自由。

起初看起来工作量很大,所以我选择使用 SearchDisplayController,但我真的建议任何需要修改或想要更多自由的人,请使用 UISearchBar 和 UITableView 手动完成:)

关于objective-c - 第二次点击后搜索方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11383986/

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