我已经创建了如下自定义UITextField
@IBInspectable var hasError: Bool = false {
didSet {
self.borderColor = hasError ? .red: .black
self.textColor = hasError ? .red : .black
}
}
当我单击“按钮”,然后隐藏键盘,然后将UITextField textColor更改为红色时,我做了如下操作。
@IBAction func checkAction(_ sender: AnyObject) {
DispatchQueue.main.async {
self.myTextField.hasError = true
}
}
上面的代码不起作用,因为调用checkAction
动作时textColor不会变为红色。令人惊讶的是,当我添加了该行_ = myTextField.becomeFirstResponder()
并再次运行它时,代码正在工作。我的问题是让我知道如何通过不在该函数中添加键盘_ = myTextField.becomeFirstResponder()
来将UITextField颜色更改为红色。谢谢。