【问题标题】:Any ideas about an auto complete feature for iOS development?关于 iOS 开发的自动完成功能有什么想法吗?
【发布时间】:2013-01-24 23:09:34
【问题描述】:

任何人都可以向我指出任何示例项目或有关如何创建自动完成文本字段的提示,其中用户键入一个通用名称,例如“美国航空公司”,它具有另一个值,例如“AA”(对于美国航空公司)和作为用户根据文本字段中的内容输入它建议的结果?

类似这样的:

任何提示都会很棒!

谢谢大家。

【问题讨论】:

    标签: ios xcode uitextfield autosuggest


    【解决方案1】:

    First get this source code

    根据我的经验,在 IB 中添加一个搜索显示控制器。然后我将代码添加到 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;
    }
    

    This is tutorial for help you.

    And also get demo project.

    谢谢。 :)

    【讨论】:

    • UISearchDisplayController 在 iOS 8 中已弃用。(请注意,UISearchDisplayDelegate 也已弃用。)要在 iOS 8 及更高版本中管理搜索栏的呈现和显示搜索结果,请改用 UISearchController
    【解决方案2】:

    看看我的实现,MLPAutoCompleteTextField。它是开源的。

    它会自动完成类似于 Google 的即时搜索。它使用Levenshtein Distance 算法对条目进行排序。

    【讨论】:

    • 是否可以从实体(即核心数据中的表格)中提取建议,即您在核心数据中列出了电子邮件地址,并根据您输入的内容提取它们
    【解决方案3】:

    查看我的演示项目:

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

    尝试在“City”字段中搜索“York”,或在“Domains”字段中搜索“book”

    这是你要找的吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-12
      • 2014-11-24
      • 2017-01-22
      • 2022-08-15
      • 1970-01-01
      • 2023-01-05
      • 1970-01-01
      相关资源
      最近更新 更多