UITextField在单击按钮时无效,但可以在change上工作

时间:2018-11-28 06:20:06

标签: ios iphone swift

点击按钮时出现以下错误

  

线程1:致命错误:在展开可选值时意外发现nil

以下是代码

@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 ==”“而不是按钮单击中工作

1 个答案:

答案 0 :(得分:0)

我已经尝试过您的代码,而且似乎可以正常工作...

无论如何,都可以尝试以这种方式使用防护装置:

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