-2

データのテーブルを検索する UISearchBar があります。検索を入力すると、次のような順序で結果が表示されます。

「ch...」と入力し始める 1. 痛み 2. さくらんぼ 3. 選択

「ach」ではなく「ch」が入力されたため、「Cherry」と「Choice」が結果の一番上にあることは、私にとって(そして私のアプリにとって)より理にかなっています。これはプログラムで変更できるものですか、またはそれはiOSの検索が機能する方法ですか?

4

1 に答える 1

3

検索オプションを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
            }       

        }   

    }

}
于 2012-07-18T04:17:31.400 に答える