嗯,我怀疑这是一个凄凉的问题,最终注定要让我感到悲伤和失望,但我想在未来的记录中提出问题。
场景是我正在创建an administration app,旨在允许人们编辑服务器上数据库中的值。我有a fairly zippy API可用于允许REST样式的数据交换。
我可以下载用户在登录时可以用作搜索字词的值列表,我希望能够帮助他们快速输入内容。
例如,城镇名称。如果他们进入“B”,那么我希望能够提供“Bayshore”,“Babylon”和“Bohemia”作为建议,等等。
完全合法的申请。
我假设目前不存在QuickType API。
我错了吗?
答案 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
})
希望能帮助任何人寻找这种功能!