我正在尝试编写一条if语句,以检查用户是否在用户名和密码字段中输入了任何内容。如果两个字段中都有字符,我们设置:
if self.emailTextField.text!.isEmpty || self.passwordTextField.text!.isEmpty
{
self.loginButton.isEnabled = false
self.loginButton.layer.opacity = 0.2
}
else if self.emailTextField.text!.isEmpty == false || self.passwordTextField.text!.isEmpty == false
{
self.loginButton.isEnabled = true
self.loginButton.layer.opacity = 1
}
如果不是,我们将第一个设置为false,第二个设置为0.2。
这是我的代码:
{{1}}
当我运行该应用程序时,无论我在文本字段中输入什么内容,该按钮将始终处于非活动状态,并设置为0.2不透明度。我该如何解决?
答案 0 :(得分:1)
您可能会认为您的代码正在观察文本字段文本中的变化,但事实并非如此
// inside viewDidLoad
emailTextField.addTarget(self, action: #selector(self.textChanges(_:)), for: UIControl.Event.editingChanged)
passwordTextField.addTarget(self, action: #selector(self.textChanges(_:)), for: UIControl.Event.editingChanged)
并在此处获取更改
@objc func textChanges(_ textField: UITextField) {
changed()
}
func changed() {
if self.emailTextField.text!.isEmpty || self.passwordTextField.text!.isEmpty
{
self.loginButton.isEnabled = false
self.loginButton.layer.opacity = 0.2
}
else
{
self.loginButton.isEnabled = true
self.loginButton.layer.opacity = 1
}
}