您好,我收到textFieldDidChange(Swift)的两个错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了您好,我收到textFieldDidChange(Swift)的两个错误相关的知识,希望对你有一定的参考价值。
有人可以帮帮我吗?我收到了这两个错误
使用未解析的标识符
和
在声明之前使用局部变量textFieldDidChange
这是我的代码
override func viewDidLoad() {
super.viewDidLoad()
// Setting text field delegates
emailTextField.delegate = self
passwordTextField.delegate = self
// Disable login button until both textFields are not nil
textField.addTarget(self, action: #selector(textFieldDidChange), for: UIControlEvents.editingChanged)
}
func textFieldDidChange() {
if (emailTextField.text?.isEmpty)! || (passwordTextField.text?.isEmpty)! {
print("text is empty")
loginButton.isEnabled = false
loginButton.alpha = 0.33
} else {
loginButton.isEnabled = true
loginButton.alpha = 0.55
}
}
编辑问题已经回答但是我注意到在输入第一个textField后按钮会启用。所以我将&&更改为||因为我希望在两个textField都不为空之前禁用该按钮。只适用于有这个问题的人。
答案
你的textFieldDidChange
方法应该在viewDidLoad
之外,并且应该用@objc
作为前缀,因为它是一个选择器。
class YourClass: UIViewController {
// Your code
override func viewDidLoad() {
super.viewDidLoad()
// Setting text field delegates
emailTextField.delegate = self
passwordTextField.delegate = self
// Disable login button until both textFields are not nil
emailTextField.addTarget(self, action: #selector(textFieldDidChange), for: UIControlEvents.editingChanged)
passwordTextField.addTarget(self, action: #selector(textFieldDidChange), for: UIControlEvents.editingChanged)
}
@objc func textFieldDidChange() {
if (emailTextField.text?.isEmpty)! && (passwordTextField.text?.isEmpty)! {
print("text is empty")
loginButton.isEnabled = false
loginButton.alpha = 0.33
} else {
loginButton.isEnabled = true
loginButton.alpha = 0.55
}
}
}
目标应该添加到相应的文本字段 - emailTextField
和passwordTextField
。
另一答案
你错过了"}"
为viewDidLoad
方法
override func viewDidLoad() {
super.viewDidLoad()
// Setting text field delegates
emailTextField.delegate = self
passwordTextField.delegate = self
// Disable login button until both textFields are not nil
textField.addTarget(self, action: #selector(textFieldDidChange), for: UIControlEvents.editingChanged)
}
@objc func textFieldDidChange() {
if (emailTextField.text?.isEmpty)! && (passwordTextField.text?.isEmpty)! {
print("text is empty")
loginButton.isEnabled = false
loginButton.alpha = 0.33
} else {
loginButton.isEnabled = true
loginButton.alpha = 0.55
}
}
以上是关于您好,我收到textFieldDidChange(Swift)的两个错误的主要内容,如果未能解决你的问题,请参考以下文章
textFieldDidChange 和 shouldChangeCharactersIn 方法的主要区别是啥,UITextFieldDelegate 的委托?