0

我有需要为其编写搜索机制的 UIPicker。提供给这个选择器的数据是一个字符串数组。当用户输入搜索字符串时(我有一个 UISearchBar 来处理它。)我想找到包含搜索词的所有字符串。从下面的示例中,似乎我需要编写一个谓词然后过滤数组。我现在遇到的问题是我不知道如何向用户显示搜索结果。我尝试将结果集分配回原始数组,但这是不正确的。有人可以建议一种通过代码示例实现 UIPicker 搜索的技术吗?

NSMutableArray* names = [NSMutableArray arrayWithObjects:@"Andy", @"Bart", @"Bob", nil]; 
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"SELF beginswith[c] 'b'"];
NSArray* namesStartingWithB = [names filteredArrayUsingPredicate: predicate];
4

2 回答 2

0

这绝不是一个超级有创意的解决方案,但是将结果存储为一个单独的数组(即 searchResultsArr)并将数据源更改为那个怎么样?在代码中只使用 searchResultsArr 除非它是 nil。如果它为零,则使用完整的数组。

一定要打电话

[picker reloadAllComponents];

当你把它关掉时

于 2010-02-03T19:35:29.077 回答
0

这是一个工作项目

请记住,您的谓词区分大小写。您使用了小写的 b 所以它不会返回任何结果。我的解决方案与乔建议的基本相同。我使用两个数组。一个数组用于完整数据集,然后另一个数组用于搜索结果。选择器的数据源是部分数组,然后我在搜索时重新加载选择器。

于 2010-02-03T20:32:47.620 回答