我正在用VC创建一个简单的日志。让我们忽略用户名和密码的输入验证。我只想在用户名和密码的UITextField都不为空时启用UIButton。并且每当其中任何一个为空时,我想禁用该按钮。
@IBAction func typingUserName(_ sender: Any) {
usernameTxtfield.layer.shadowPath = UIBezierPath(rect: usernameTxtfield.bounds).cgPath
usernameTxtfield.layer.shadowRadius = 2
usernameTxtfield.layer.shadowOffset = .zero
usernameTxtfield.layer.shadowOpacity = 0.5
signInIcon.isEnabled = false
}
@IBAction func typingPassword(_ sender: Any) {
passwordTxtfield.layer.shadowPath = UIBezierPath(rect: passwordTxtfield.bounds).cgPath
passwordTxtfield.layer.shadowRadius = 2
passwordTxtfield.layer.shadowOffset = .zero
passwordTxtfield.layer.shadowOpacity = 0.5
signInIcon.isEnabled = false
}
@IBAction func usernameTxtFieldEditingChnged(_ sender: Any) {
usernameTxtfield.layer.shadowRadius = 0
usernameTxtfield.layer.shadowOffset = .zero
usernameTxtfield.layer.shadowOpacity = 0
}
@IBAction func passwordEditingChaned(_ sender: Any) {
passwordTxtfield.layer.shadowRadius = 0
passwordTxtfield.layer.shadowOffset = .zero
passwordTxtfield.layer.shadowOpacity = 0
signInIcon.isEnabled = true
}
@IBAction func signInClicked(_ sender: Any) {
performSegue(withIdentifier: "welcomeVC", sender: signInIcon)
}
正如您所看到的,我只在密码文本字段EditingChanged被触发后才启用该按钮。
3条答案
按热度按时间uqcuzwp81#
您可以观察事件
.editingChanged
。然后在两种方法中添加检查:
hc2pp10m2#
您必须实现如下内容:
您可以在每个UITextField的操作中添加这段代码,然后就可以开始了
anhgbhbe3#
将文本字段和按钮的出口连接到视图控制器类。
然后编写设置函数
将setupTextFields函数设置为VC的viewDidLoad,并将按钮设置为isEnable = false
并编写func来获取textFields。
我们还需要检查这些是否有效。
也将函数添加到set Button
然后编写TextFielddelegatefunc以了解输入正在更改并更改按钮的条件。
我希望这对你有帮助:)