UITextFields应以相反的顺序激活

时间:2017-04-18 10:17:16

标签: ios swift uitextfield

我有六个UITextFields用于输入密码。 在一个字符之后,下一个UITextFields变为活动状态。但是退格怎么办?在键盘退格键上,文本字段应以相反的顺序激活

1 个答案:

答案 0 :(得分:3)

根据您的要求,我做了一个演示,它的工作就像一个魅力。 因此,为了满足您的要求,您必须遵循以下说明:

按照101,102,103,104,105和106

的顺序为每个UITextField添加标记

然后让每个textField的委托给自己(UIViewController)

然后实现UITextField的下面委托方法

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
        print("string = \(string) text = \(textField.text)")

        if(textField.text?.characters.count == 1){

            if string.characters.count == 0{


                if textField.tag != 101{
                    textField.resignFirstResponder()

                    let preField : UITextField = self.view.viewWithTag(textField.tag-1) as! UITextField
                    preField.becomeFirstResponder()
                }

                textField.text = string
                return false
            }


            if textField.tag != 106{
                textField.resignFirstResponder()

                let nextField : UITextField = self.view.viewWithTag(textField.tag+1) as! UITextField

                nextField.text = string
                nextField.becomeFirstResponder()
            }

            return false
        }

        return true
    }