OGeek|极客世界-中国程序员成长平台

标题: ios - UITextField 在按钮单击时为零,但在更改时有效 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 20:52
标题: ios - UITextField 在按钮单击时为零,但在更改时有效

单击按钮时出现以下错误

Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value

以下是代码

@IBOutlet weak var UserId: UITextField!{
    didSet{
        UserId.setBottomBorder()
        UserId.delegate = self
    }
}
@IBOutlet weak var Password: UITextField!{
    didSet{
        Password.setBottomBorder()
        Password.delegate = self
    }
}

@IBAction func logincta(_ sender: Any) {
           guard let _ = UserId.text, UserId.text?.characters.count != 0 else {
        print("test")
        return
    }

}

但在以下 onchange 代码中可以正常工作

@IBAction func UserIdChanged(_ sender: Any) {
    if UserId.text == "" {
        UserId.setBottomBorder()
    }
    else{
    UserId.setPurpleBottomBorder()
    }
}

@IBAction func PasswordChanged(_ sender: Any) {
    if Password.text == "" {
        Password.setBottomBorder()
    }
    else{
        Password.setPurpleBottomBorder()
    }
}

我想知道它在 onchange 事件“if UserId.text ==”中是如何工作的,但不是在按钮点击中



Best Answer-推荐答案


我已经试过你的代码,它似乎工作......

无论如何都可以尝试以这种方式使用守卫:

guard let numOfChars = UserId?.text?.count, numOfChars != 0 else {
        print("test")
        return
    }

关于ios - UITextField 在按钮单击时为零,但在更改时有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53513282/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4