Swift textFieldDidChangeSelection在ios 12中没有被调用



所以我让这个函数在2个文本字段达到最小文本计数时触发,将使按钮启用

它适用于ios 13及以上,但它不能在ios 12....我不知道为什么它不工作

所以基本上我的textfielddidchangesselection不会触发任何东西当我在我的文本框.....上键入它不能在ios 12上运行,但可以在ios 13及以上版本上运行

我尝试在textFieldDidChangeSelection上打印一些内容,但在控制台没有打印任何内容

这是我的代码

//这是我的函数代码

func buttonReady() {
if phoneNumberTextField.text!.count > 8 &&   textPinTextField.text!.count == 6{
loginButton.isUserInteractionEnabled = true
loginButton.backgroundColor = UIColor.init(string:    COLOR_RED)
loginButton.setTitleColor(UIColor.white, for: .normal)
print("ahaaaa 🏌🏻")
} else {
loginButton.isUserInteractionEnabled = false
loginButton.backgroundColor = UIColor.init(string: COLOR_GREY_BUTTON)
loginButton.setTitleColor(UIColor.init(string: COLOR_GREY_TEXT), for: .normal)
print("hmmmm 🤔")
}
}

我在这里使用了这个函数

func textFieldDidChangeSelection(_ textField: UITextField) {
if textField == phoneNumberTextField {
buttonReady()

}
if textField == textPinTextField {
buttonReady()

}

}

override func viewDidLoad() {
super.viewDidLoad()

// Do any additional setup after loading the view.

buttonReady()
hideKeyboardWhenTappedAround()
}

和我使用SkyFloatingLabelTextFIeld自定义文本字段

我还是不明白为什么这个函数在ios12上不能工作,而在ios13及以上版本上可以工作

同样的问题

你可以试试这个

override func viewDidLoad() {
super.viewDidLoad()

// Do any additional setup after loading the view.
phoneNumberTextField.addTarget(self, action: #selector(textFieldDidChange), for: .editingChanged)
textPinTextField.addTarget(self, action: #selector(textFieldDidChange), for: .editingChanged)
buttonReady()
hideKeyboardWhenTappedAround()
}

@objc func textFieldDidChange() {
buttonReady()
}

查看UITextField.h,您将看到:

- (void)textFieldDidChangeSelection:(UITextField *)textField API_AVAILABLE(ios(13.0), tvos(13.0));

textFieldDidChangeSelection仅在ios13.0及更高版本上可用。

相关内容

  • 没有找到相关文章

最新更新