データのテーブルを検索する UISearchBar があります。検索を入力すると、次のような順序で結果が表示されます。
「ch...」と入力し始める 1. 痛み 2. さくらんぼ 3. 選択
「ach」ではなく「ch」が入力されたため、「Cherry」と「Choice」が結果の一番上にあることは、私にとって(そして私のアプリにとって)より理にかなっています。これはプログラムで変更できるものですか、またはそれはiOSの検索が機能する方法ですか?
データのテーブルを検索する UISearchBar があります。検索を入力すると、次のような順序で結果が表示されます。
「ch...」と入力し始める 1. 痛み 2. さくらんぼ 3. 選択
「ach」ではなく「ch」が入力されたため、「Cherry」と「Choice」が結果の一番上にあることは、私にとって(そして私のアプリにとって)より理にかなっています。これはプログラムで変更できるものですか、またはそれはiOSの検索が機能する方法ですか?
検索オプションをNSAchoredSearchとして指定する必要があります
NSRange searchRange = [sortedString rangeOfString:searchText オプション:NSAnchoredSearch];
以下にリストされている検索方法の一部
NSCaseInsensitiveSearch
NSLiteralSearch
NSBackwardsSearch
NSAchoredSearch
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
}
}
}
}