所以我让这个函数在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及更高版本上可用。