Swift 在文本输入期间验证 2 uitextfield 密码
Posted
技术标签:
【中文标题】Swift 在文本输入期间验证 2 uitextfield 密码【英文标题】:Swift validate 2 uitextfield password during text entry 【发布时间】:2020-11-23 05:15:27 【问题描述】:我有 2 个文本字段,其中包含 1 个输入 pin 和 1 个重新输入 pin,我尝试使用 shouldChangeCharactersIn 进行验证,因此如果 pin 不同,它会自动显示一条小文本消息,表示 pin 不同。很好,但不是很好,因为如果我只是在我的输入引脚中输入 6 引脚,并且我还在重新输入引脚中输入 6 引脚,(在这种情况下,我故意输入错误的引脚)并且消息不会弹出,但是如果我输入超过 6 次,比方说输入 7 的数字会显示消息,为什么我不明白。
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool
if textConfirmPIN.text!.count == 6 && textPIN.text!.count == 6
if textConfirmPIN.text != textPIN.text
self.showError(message: "PIN is not the same")
return true
抱歉我的英语不好,但谁能告诉我发生了什么事?谢谢大家
【问题讨论】:
【参考方案1】:使用文本字段编辑更改事件而不是 shouldChangeCharactersIn
,因为当您在 shouldChangeCharactersIn
中检查 textConfirmPIN.text!.count
时,最后输入的字符仍然不存在,直到返回 true
这就是你输入第 7 个字符时调用它的原因
【讨论】:
啊,好吧2现在我明白了,谢谢先生的回答,我花了一整天的时间来解决这个问题以上是关于Swift 在文本输入期间验证 2 uitextfield 密码的主要内容,如果未能解决你的问题,请参考以下文章
Swift 4 或 Swift 5 中的 UITextView 用户输入文本验证:限制 Swift 中的特定字符
在 SwiftUI 中的 forEach 期间将文本字段输入添加到数组
有没有一种方法可以使用 swift 在 alertview 内的文本字段中提供验证
为啥我无法在 Swift 的登录按钮中验证 textFields