没有 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
})
希望对寻找这种功能的人有所帮助!