当用户以编程方式单击 swift ios 中的删除按钮时,如何将光标从一个文本字段自动移动到另一个文本字段?

How to move cursor from one text field to another automatically when the user clicks the Delete Button in swift ios programmatically?

目前,我有 6 个 textfields,一旦用户点击键盘上的数字,我就会从一个 textfield 移动到下一个。

我要解决的问题是: 如果用户点击 Delete Button 返回重新输入不同的号码,我该如何编码在程序中?

如何让用户返回并在键盘上输入新号码并将 textfield 改回其原始代码?

我希望用户能够在键盘上的 6 个字段中输入一个数字,然后让用户能够单击 Delete Button 返回并重新输入数字.我希望用户必须单击 Delete Button.

此外,如何摆脱 UItextfield 中闪烁的蓝线?

我已经被这个问题困扰了一段时间,不知道如何解决这个问题。

    @objc func textFieldDidChange(textfield: UITextField) {
        let text = textfield.text
        if text?.utf16.count == 1 {
            switch textfield {
            case textfield1:
                textfield1.backgroundColor = UIColor.black
                textfield1.textColor = .white
                textfield2.becomeFirstResponder()
                textfield2.backgroundColor = UIColor.black
                textfield2.textColor = .white
            case textfield2:
                textfield3.becomeFirstResponder()
                textfield3.backgroundColor = UIColor.black
                textfield3.textColor = .white
            case textfield3:
                textfield4.becomeFirstResponder()
                textfield4.backgroundColor = UIColor.black
                textfield4.textColor = .white
            case textfield4:
                textfield5.becomeFirstResponder()
                textfield5.backgroundColor = UIColor.black
                textfield5.textColor = .white
            case textfield5:
                textfield6.becomeFirstResponder()
                textfield6.backgroundColor = UIColor.black
                textfield6.textColor = .white
            case textfield6:
                textfield6.resignFirstResponder()
            default:
                break
            }
        }
        else {

        }
    }

你可以使用这个:

func textFieldDidChange(textField: UITextField) {
    let text = textField.text!
    if text.utf16.count == 0 {
        switch textField {
        case textField2:
            textField1.becomeFirstResponder()
        case textField3:
            textField2.becomeFirstResponder()
        case textField4:
            textField3.becomeFirstResponder()
        case textField5:
            textField4.becomeFirstResponder()
        case textField6:
            textField5.becomeFirstResponder()
        default:
            break
        }
    } else if text.utf16.count == 2 {
        let indexStartOfText = text.index(text.startIndex, offsetBy: 1)
        textField.text = String(text[..<indexStartOfText])
        let tempStr = String(text[indexStartOfText])
        switch textField {
        case textField1:
            textField1.backgroundColor = UIColor.black
            textField1.textColor = .white
            textField2.becomeFirstResponder()
            textField2.backgroundColor = UIColor.black
            textField2.textColor = .white
            textField2.text = tempStr
        case textField2:
            textField3.becomeFirstResponder()
            textField3.backgroundColor = UIColor.black
            textField3.textColor = .white
            textField3.text = tempStr
        case textField3:
            textField4.becomeFirstResponder()
            textField4.backgroundColor = UIColor.black
            textField4.textColor = .white
            textField4.text = tempStr
        case textField4:
            textField5.becomeFirstResponder()
            textField5.backgroundColor = UIColor.black
            textField5.textColor = .white
            textField5.text = tempStr
        case textField5:
            textField6.becomeFirstResponder()
            textField6.backgroundColor = UIColor.black
            textField6.textColor = .white
            textField6.text = tempStr
        case textField6:
            textField6.resignFirstResponder()
        default:
            break
        }
    }
}

在此代码中,您永远不会关注 UITextFields 的第一个字母,而是关注 2 个字母,如果 sender.text.count 等于 2,则为下一个 [=13] 设置第二个数字=],如果 sender.text.count 等于零,则表示用户删除了某些内容(因为我们处于 Editing Changed 事件中),我们应该向后移动光标。
并在 if.
的第一个语句中为 UI 做任何你想做的事 有点乱,但还行。