如何在两个textField中至少包含一个字符之前禁用按钮? [重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在两个textField中至少包含一个字符之前禁用按钮? [重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我试图禁用登录按钮,直到电子邮件和密码textFields在这两个文件中都至少有一个字符。我试着查找不同的答案,但代码似乎已经过时了我可以很好的答案。我也不知道如何观察TextFields值以查看是否有变化。有人可以帮助我或指出我正确的方向吗?

这是我目前的计数。

func viewDidLoad() {
super.viewDidLoad()
// Setting text field delegates

emailTextField.delegate = self

passwordTextField.delegate = self

//checking if both textFields are filled in to enable Login Button

if (emailTextField.text?.count)! > 0  && (passwordTextField.text?.count)! > 0    {

loginButton.isEnabled = true
loginButton.alpha = 0.55

} else {
    loginButton.isEnabled = false
    loginButton.alpha = 0.32

}



}
答案

像这样使用属性观察者。

var testfield: UITextField? {
    didSet{

        print("Called after setting the new value")
        if let name = testfield?.text, name.count > 0 {
            print("New name is \(name) and old name is \(String(describing: oldValue?.text))")
            testfield?.isEnabled = true
        } else {
            //dont have text
            testfield?.isEnabled = false
        }
    }
    willSet(myNewValue) {

        print("Called before setting the new value")
        if let newName = myNewValue?.text, newName.count > 0 {
            print("New name is \(newName)")
            testfield?.isEnabled = true

        } else {
            //dont have text
            testfield?.isEnabled = false
        }
    }
}

以上是关于如何在两个textField中至少包含一个字符之前禁用按钮? [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 `textField:shouldChangeCharactersInRange:`,如何获取包含当前键入字符的文本?

如何根据 TextField 的可见大小限制 UITextField 的输入文本量?

如何检测字符串是不是至少包含一个数字?

如何以特殊格式输入 textfield.text

如何在 bash shell 中将一个字符串拆分为多个字符串,至少用一个空格分隔?

在 UITextField 上禁用快速删除