我有一个搜索数据表的UISearchBar。输入搜索后,结果将按如下顺序显示:
开始输入'ch ...' 疼痛 樱桃 3.选择
对我(以及我的应用程序)来说,'樱桃'和'选择'会在结果的顶部更有意义,因为'ch'而不是'ach'被输入。这是否可以以编程方式进行更改,还是仅仅是iOS搜索的工作方式?
答案 0 :(得分:3)
您必须将搜索选项指定为 NSAnchoredSearch
NSRange searchRange = [sortedString rangeOfString:searchText options:NSAnchoredSearch];
下面列出的一些搜索方法
NSCaseInsensitiveSearch
NSLiteralSearch
<强> NSBackwardsSearch 强>
NSAnchoredSearch
NSNumericSearch
NSDiacriticInsensitiveSearch
NSWidthInsensitiveSearch
NSForcedOrderingSearch
<强> NSRegularExpressionSearch 强>
例如:
- (void)search {
NSString *searchText = [searchBar.text lowercaseString];
for (int index = 0; index < [availableCollectionArray count]; index++) {
NSArray *tempArray = [availableCollectionArray objectAtIndex:index];
for (int tempIndex = 0; tempIndex < [tempArray count] ; tempIndex++) {
NSString *sortedString = [tempArray objectAtIndex:tempIndex];
NSRange searchRange = [sortedString rangeOfString:searchText options:NSAnchoredSearch];
if (searchRange.length > 0)
{
[sortedArray addObject: sortedString]; //add the string which starts from searchBar.text
}
}
}
}