gpt4 book ai didi

ios - Swift:检查用户输入计数以继续

转载 作者:行者123 更新时间:2023-11-30 12:40:20 26 4
gpt4 key购买 nike

我有一个字段需要通过短信发送的验证码。发送给所有用户的代码是 4 位数字代码。我希望用户输入代码,输入第四位数字后,系统会自动检查代码(无需单击按钮),如果与预期值匹配,则将正确的代码打印到控制台。如果不匹配,则将 In Correct 打印到控制台(此处用于打印目的的控制台)。

假设我的代码(为了测试目的而修复)是 1234,下面是我的尝试,但未按预期工作:

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {

if let text = textField.text {

if let floatingLabelTextField = textField as? SkyFloatingLabelTextField {
if(text.characters.count > 4) {
floatingLabelTextField.errorMessage = "code is invalid"
}
else {
// The error message will only disappear when we reset it to nil or empty string
floatingLabelTextField.errorMessage = ""
let smsInputCode = Int(self.verificationTextField.text!)
if(smsInputCode == self.smsSampleCode)
{
print("Correct Code")
}else{
print("Incorrect Code")
}
}
}
}
return true
}

上面的代码在我输入数字时打印“不正确”4次,然后仅在我单击键盘上的选项卡栏(不是自动检测)后才显示正确的代码。

感谢您的帮助。

最佳答案

我写了一个demo你可以引用:

在 View Controller 中:

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var textField: UITextField!

@IBOutlet weak var label: UILabel!

override func viewDidLoad() {
super.viewDidLoad()

textField.addTarget(self, action: #selector(textFieldAction), for: .editingChanged)


}

func textFieldAction() {

if (textField.text?.characters.count)! > 4 {

let lengh = textField.text?.characters.count

let str:NSString = textField.text! as NSString

textField.text = str.substring(to: lengh! - 1)
}

if textField.text == "1234" {
label.text = "valid"
}else {
label.text = "invalid"
}

}

}

结果:

enter image description here

关于ios - Swift:检查用户输入计数以继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42311241/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com