【发布时间】:2020-07-26 18:33:49
【问题描述】:
所以我的应用中有一个登录屏幕。当用户单击登录时,会调用一个 api 来检查登录凭据是否正确(或不正确),当登录凭据不正确时会显示错误消息。现在我遇到的问题是在调用登录按钮并显示错误消息之后,我希望当用户开始更改用户名/密码字段(UITextField)中的文本时错误消息消失。起初,我尝试使用事件侦听器尝试在侦听器调用函数时将错误消息的 alpha 设置为 0.0。我使用的代码在下面。
textField.addTarget(self, action: #selector(textFieldDidChange(textfield:)), for: .editingChanged)
然后我有一个用于该操作的 objc 函数:
@objc func textFieldDidChange(textfield: UITextField) {
errorLabel.alpha = 0.0
}
我遇到的问题是,当用户仅单击文本字段时,错误消息就会消失。如果用户实际更改了文本字段中的文本,我只希望错误消息消失。我该怎么办?如果您还需要什么,请告诉我。
【问题讨论】:
-
您可以使用
UITextFieldDelegate,保留一个布尔值,并在此基础上在委托方法beginEditing中隐藏错误消息。 -
检查 textField.text 是否等于不正确的文本
-
是的 Leo Dabus 的评论有效,但我在多个地方都遇到过这个问题,我想知道是否有更简单的方法可以做到这一点,或者我是否可以制作一些可重用的类,而不是检查输入每次的文本字段。