【发布时间】:2018-09-06 09:25:22
【问题描述】:
如果电子邮件或密码文本字段为空,我想禁用登录按钮,并在两者都填写后再次启用它,因此我使用以下代码:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if txtEmail.text != "" , txtPassword.text != "" {
btnLogInOutlet.isEnabled = true
}else if txtEmail.text! == "" || txtPassword.text! == "" {
btnLogInOutlet.isEnabled = false
}
return true
}
当我在两个字段中输入然后我删除我在其中一个字段中输入的内容时,就会出现问题。如下图所示,该按钮仍处于启用状态。只有在我开始在另一个(非空)文本字段中编辑时,它才会再次被禁用。
我的问题是如何在删除我在任何文本字段中输入的内容后直接再次禁用按钮,然后再移动到另一个??
【问题讨论】:
-
这一切都是因为您没有考虑函数中的“字符串”值。要获取新字符串,您需要从 textfield.text 中添加/删除它。这应该对您有所帮助。
标签: swift uitextfield textfield disable