swift - 如何使用来自 JSON 数据的自动完成功能 Swift

标签 swift swift3 autocomplete

如何使用 JSON 数据在文本字段中自动完成。

所以我有一个像这样的 Json

[
  {
    "city_name": "City1",
    "province": "province1"
  },
  {
    "city_name": "City2",
    "province": "province2"
  },
  {
    "city_name": "City3",
    "province": "province3"
  },
  {
    "city_name": "City4",
    "province": "province4"
  } 
  { //etc }
]

该值已保存到模型中。所以如果我必须获取这个 json 的值,我只需要调用一个模型。 但是我不知道如何实现文本字段,当点击文本字段时,该 json 将会自动完成。

example : when I type in the textfield "C" it will show " City1, City2, and etc "

谢谢

编辑

我需要以编程方式进行此操作。

我已经有一个文本字段的代码

//View
let fillCity: BaseTextField = {
        let fillCity = BaseTextField()
        fillCity.textColor = UIColor().greenColors()
        return fillCity
    }()

BaseTextField 与 UITextField 相同,只是对下划线进行了一些自定义

在 View Controller 中

//ViewController
override func viewDidLoad() {
        super.viewDidLoad()

        setupViews()

    }
private func setupViews(){

    mainView = view as! MerchantInformationView
//other code
}

最佳答案

为 textField OnChange 事件创建逻辑后,您可以使用以下方法过滤数组中的字符串:

resultsArray = wholeArray.filter({ (textEntered) -> Bool in
     let tmp: NSString = text as NSString
     let range = tmp.range(of: stringWithoutSpaces, options: NSString.CompareOptions.caseInsensitive)
     return range.location != NSNotFound
})

textEntered - 在文本字段上写入的文本

resultsArray - 包含过滤数据的数组

wholeArray - 包含要过滤的整个数据的数组

然后添加到 tableView 或任何您用来显示过滤数据的内容

关于swift - 如何使用来自 JSON 数据的自动完成功能 Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44277479/

相关文章:

ios - swift 3 错误 UILabel : the use of CGColor for color properties or inside attributed strings is not supported

autocomplete - 如何在 jQuery 自动完成中启用文本选择?

php - AES 256 加密,PHP/MySQL 与 Swift 的区别

ios - UIViewController 的默认自定义过渡

c - UInt8 数组 Swift 到 const char* C

xcode - 转换Swift self.navigationItem.title = show.uppercased()

ios - 如何使用 textContentType 在 React Native 中获取 iOS 的电子邮件自动完成建议?

jquery - Rails jQuery 自动完成客户端

ios - 图像不会发送到我的 Alamofire .post 请求中的后端 - Swift 3

image - 如何使用 swift 在使用贝塞尔路径开发的形状上添加文本或图像