您好,我收到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
        }
    }

}

目标应该添加到相应的文本字段 - emailTextFieldpasswordTextField

另一答案

你错过了"}"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 的委托?

您好.. 我正在尝试建立一个升级系统,我在终端中没有收到任何错误,但 json 数据没有更新

您好,我在发出 http 删除请求时收到以下错误

IOS - 获取UITextField的输入文本

您好。关于ZEN CART的问题。

您好,GestureDetector、Pan 和 Scale 问题