0

ユーザーが一般的な名前を入力するオートコンプリートテキストフィールドを作成する方法に関するサンプルプロジェクトまたはヒントを教えてください。たとえば、「AA」(アメリカン航空の場合) などの別の値を持つ「アメリカン航空」と、ユーザーが入力したときにテキストフィールドの内容に基づいて結果を提案しますか?

このようなもの:例

どんなヒントでも素晴らしいでしょう!

みんな、ありがとう。

4

3 に答える 3

2

まずこのソースコードを入手してください

私の経験では、IB に Search Display Controller を追加します。次に、次のように RootViewController.m にコードを追加しました。

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString {
 NSInteger searchOption = controller.searchBar.selectedScopeButtonIndex;
 return [self searchDisplayController:controller shouldReloadTableForSearchString:searchString searchScope:searchOption];
}

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchScope:(NSInteger)searchOption {
 NSString* searchString = controller.searchBar.text;
 return [self searchDisplayController:controller shouldReloadTableForSearchString:searchString searchScope:searchOption];
}

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

 NSPredicate *predicate = nil;
 if ([searchString length])
  if (searchOption == 0) // full text, in my implementation.  Other scope button titles are "Author", "Title"
   predicate = [NSPredicate predicateWithFormat:@"title contains[cd] %@ OR author contains[cd] %@", searchString, searchString];
  else
   // docs say keys are case insensitive, but apparently not so.
   predicate = [NSPredicate predicateWithFormat:@"%K contains[cd] %@", [[controller.searchBar.scopeButtonTitles objectAtIndex:searchOption] lowercaseString], searchString];
 [fetchedResultsController.fetchRequest setPredicate:predicate];

    NSError *error = nil;
    if (![[self fetchedResultsController] performFetch:&error]) {
  NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
  abort();
    }           

 return YES;
}

これはあなたを助けるためのチュートリアルです。

また、デモプロジェクトも入手してください。

ありがとう。:)

于 2013-02-09T05:26:32.787 に答える
1

私の実装MLPAutoCompleteTextFieldを見てください。オープンソースです。

Google のインスタント検索に似たオートコンプリートを行います。レーベンシュタイン距離アルゴリズムを使用してエントリを並べ替えます。

于 2013-05-08T19:44:51.193 に答える
0

私のデモプロジェクトを見てください:

http://olegh.cc.st/autocomplete.html

「都市」フィールドで「York」を検索するか、「ドメイン」フィールドで「本」を検索してみてください。

これはあなたが探しているものですか?

于 2013-02-17T18:49:34.767 に答える