gpt4 book ai didi

swift - 带有计时器的文本字段 didChange

转载 作者:搜寻专家 更新时间:2023-10-31 22:01:45 24 4
gpt4 key购买 nike

我正在我的项目中进行自动完成,我想检测 textfieldDidChange 值的时间并在 500MS 之后调用一个方法(链接到 API)。

我希望它足够清楚感谢您的帮助!

最佳答案

在 Swift 3 中,您可能想要连接到“编辑更改”而不是“值更改”,并重置计时器并启动另一个计时器:

weak var timer: Timer?

@IBAction func didChangeEditing(_ sender: UITextField) {
timer?.invalidate()
timer = .scheduledTimer(withTimeInterval: 0.5, repeats: false) { [weak self] timer in
// trigger your autocomplete
}
}

或者您也可以挂接到 shouldChangeCharactersIn。例如:

class ViewController: UIViewController, UITextFieldDelegate {

@IBOutlet weak var textField: UITextField!

override func viewDidLoad() {
super.viewDidLoad()

textField.delegate = self // or you can do this in IB
}

weak var timer: Timer?

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
timer?.invalidate() // cancel prior timer, if any

timer = .scheduledTimer(withTimeInterval: 0.5, repeats: false) { [weak self] timer in
// trigger your autocomplete
}

return true
}
}

关于swift - 带有计时器的文本字段 didChange,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42493156/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com