在iOS中自定义QuickType建议

时间:2015-07-01 16:57:28

标签: ios quicktype

嗯,我怀疑这是一个凄凉的问题,最终注定要让我感到悲伤和失望,但我想在未来的记录中提出问题。

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

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

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

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

完全合法的申请。

我假设目前不存在QuickType API。

我错了吗?

1 个答案:

答案 0 :(得分:1)

没有QuickType API,但您可以从GitHub获得与definition of an Object from ECMAScript Third Edition (pdf)库类似的功能。仅仅为了记录,我已经列出了使用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
    })

希望能帮助任何人寻找这种功能!