【问题标题】:Customizing QuickType Suggestions in iOS在 iOS 中自定义 QuickType 建议
【发布时间】:2015-09-18 23:17:09
【问题描述】:

好吧,我怀疑这是一个孤陋寡闻的问题,最终注定会让我感到难过和失望,但我想把这个问题记录在案,以备日后使用。

我会将这个添加到现有问题中:herehere

场景是我正在创建an administration app,它旨在允许人们编辑服务器上数据库中的值。我有a fairly zippy API,可用于允许 REST 样式的数据交换。

我能够下载用户在登录时可以用作搜索词的值列表,并且我希望能够帮助他们快速输入内容。

例如,城镇名称。如果他们输入“B”,那么我希望能够提供“Bayshore”、“Babylon”和“Bohemia”作为建议,等等。

完全合法的应用程序。

我假设当前不存在 QuickType API。

我错了吗?

【问题讨论】:

    标签: ios quicktype


    【解决方案1】:

    没有 QuickType API,但您可以使用来自 GitHub 的 ACEAutocompleteBar 库获得类似的功能。只是为了记录,我列出了使用 Swift 的步骤:

    1) 将文件夹“ACEAutocompleteBar”中的文件导入您的项目。

    2) 创建一个桥接头并在顶部写上#import "ACEAutocompleteBar.h"

    3) 将包含文本字段的视图设为 ACEAutocompleteDataSource 和 ACEAutocompleteDelegate。

    4) 实现 minimumCharactersToTrigger 函数

    func minimumCharactersToTrigger(inputView: ACEAutocompleteInputView!) -> UInt {
        return 1
    }
    

    5) 实现 inputView 函数。

    func inputView(inputView: ACEAutocompleteInputView!, itemsFor query: String!, result resultBlock: (([AnyObject]!) -> Void)!) {
    
        inputView.hidden = false
        inputView.alpha = 0.75
    
        if resultBlock != nil{
          dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
    
            var data:NSMutableArray = []
    
            if(self.myTextField.isFirstResponder()){    
              //query your data source with 'query' and add any of the results to data to pass back                
            }
            dispatch_async(dispatch_get_main_queue()) {resultBlock(data as [AnyObject])}  
          }
       }
    }
    

    6) 实现 textField 函数。

    func textField(textField: UITextField!, didSelectObject object: AnyObject!, inInputView inputView: ACEAutocompleteInputView!) {
        textField.text = String(object)
    }
    

    7) 在 textField 上调用 setAutocompleteWithDataSource。

    self.myTextField.setAutocompleteWithDataSource(self, delegate: self, customize: {
    
            inputView in
    
            // customize the view (optional)
            inputView.font = UIFont.systemFontOfSize(20)
            inputView.textColor = UIColor.whiteColor()
            inputView.backgroundColor = UIColor.blueColor()
            inputView.hidden = false
        })
    

    希望对寻找这种功能的人有所帮助!

    【讨论】:

    • 谢谢!它看起来像一个有趣的图书馆。我试试看。
    猜你喜欢
    • 2019-07-18
    • 1970-01-01
    • 2014-07-24
    • 2018-09-22
    • 2018-02-19
    • 2015-11-02
    • 2015-04-03
    • 1970-01-01
    相关资源
    最近更新 更多