如何使用来自JSON数据的自动完成Swift

时间:2017-05-31 06:43:25

标签: 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自动完成。

  

示例:当我输入文本字段时," C"它会显示" City1,City2等等#34;

谢谢

修改

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

我已经有了textField的代码

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

BaseTextField与UITextField相同,只是为了带下划线的

在ViewController中

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

        setupViews()

    }
private func setupViews(){

    mainView = view as! MerchantInformationView
//other code
}

1 个答案:

答案 0 :(得分:0)

为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 - 正在textField上写入的文本

resultsArray - 包含过滤数据的数组

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

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