密码自动填充在 swift 中不起作用

Password autofill is not working in swift

有 6 个文本字段接受 otp(一次性密码)。但是当我获取 otp 并尝试在 UITextField 上自动填充密码时,只有最后 4 个填充使用 otp。但不是所有领域。 我附上了屏幕截图

这里我已经把所有的textContentType都变成了.oneTimeCode 如何解决这个问题,请帮助。

https://i.stack.imgur.com/kkIuQ.jpg

尝试按顺序命名您的文本字段 txt1 txt2 txt3 txt4 tt5 txt6

override func viewDidLoad() {
 super.viewDidLoad()
 txt1.becomeFirstResponder()
}

 func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
        if ((textField.text?.count)! < 1 ) && (string.count > 0) {
            if textField == txt1 {
                txt2.becomeFirstResponder()

            }

            if textField == txt2 {
                txt3.becomeFirstResponder()

            }

            if textField == txt3 {
                txt4.becomeFirstResponder()
            }

            if textField == txt4 {
                txt5.becomeFirstResponder()
            }
            if textField == txt5 {
                txt6.becomeFirstResponder()
            }
            if textField == txt6{
                txt6.becomeFirstResponder()
            }

            textField.text = string
            return false
        } else if ((textField.text?.count)! >= 1) && (string.count == 0) {
            if textField == txt2 {
                txt1.becomeFirstResponder()
            }
            if textField == txt3 {
                txt2.becomeFirstResponder()

            }
            if textField == txt4 {
                txt3.becomeFirstResponder()
            }

           if textField == txt5 {
                txt4.becomeFirstResponder()
            }
            if textField == txt6 {
                txt5.becomeFirstResponder()
            }
            if textField == txt1{
               txt6.resignFirstResponder()
            }

            textField.text = ""
            return false
        } else if (textField.text?.count)! >= 1 {
            textField.text = string
            return false
        }

        return true
    }

快乐编码

试试这个自动填充文本字段

txtOTP.textContentType = .oneTimeCode