在使用textView时应用textField
函数时遇到问题。
以前,我使用的是textField,下面的代码运行流畅,没有任何问题。现在,我决定使用textView代替textField,因此想将每个textField更改为textView,但不知道如何将textField.addtarget()
函数实现为textView。我想要的是,最初,当textView为空时,未启用按钮颜色,但是当其中包含文本时,按钮颜色应为蓝色。
我找不到包含#selector
的适当函数来在textView函数中调用我的主要函数。我将不胜感激。提前非常感谢您!
override func viewDidLoad() {
super.viewDidLoad()
buttonColor.isEnabled = false
handleTextField()
}
func handleTextField() {
textField.addTarget(self, action: #selector(self.textFieldDidChange), for: UIControlEvents.editingChanged)
} // used to call the main function
@objc func textFieldDidChange() {
if (textView.text != ""){
buttonColor.setTitleColor(UIColor.blue, for: UIControlState.normal)
buttonColor.isEnabled = true
return
}
buttonColor.setTitleColor(UIColor.lightGray, for: UIControlState.normal)
buttonColor.isEnabled = false
}
答案 0 :(得分:0)
您在UITextViewDelegate
中有一个名为textViewDidChange(_:)的代表。
class ViewController: UIViewController, UITextViewDelegate {
override func viewDidLoad() {
super.viewDidLoad()
yourTextView.delegate = self
print(locationName) // not important
buttonColor.isEnabled = false // not important
}
//Your other code
func textViewDidChange(textView: UITextView) {
if (textView.text != ""){
buttonColor.setTitleColor(UIColor.blue, for: UIControlState.normal)
buttonColor.isEnabled = true
return
}
buttonColor.setTitleColor(UIColor.lightGray, for: UIControlState.normal)
buttonColor.isEnabled = false
}
}