当我按下键盘上的“X”按钮时,文本字段不会删除数据

时间:2016-04-19 11:44:01

标签: ios swift

我有4个UItextfield用于输入最高号码。喜欢1 2 3 4.当我在我的所有文本字段中输入最高号码时,如果我在最后一个urtext字段中 - 如果我在我的键盘中按下向后按钮或x键 - 我的号码在每个文本字段中都不是被删除。我无法删除。

这是我的代码:

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

        let value = textField.text!
        let length = value.characters.count
        if (length == 1) {
            return false
        }
        if (textField == Field1) {
            self.performSelector(Selector("setNextResponder:"), withObject: Field2, afterDelay: 0.2)
            textField1 = string
        } else  if (textField == Field2) {
            self.performSelector(Selector("setNextResponder:"), withObject: Field3, afterDelay: 0.2)
            textField2 = string
        } else if (textField == Field3) {
            self.performSelector(Selector("setNextResponder:"), withObject: Field4, afterDelay: 0.2)
            textField3 = string
        } else if (textField == Field4) {
            textField.resignFirstResponder()
            textField4 = string
            nextButton.enabled = true
        }

     else  if (textField == Field4)
 {
     if string == "" && textField.text?.characters.count == 1 {
            Field1.text = ""
            Field2.text = ""
            Field3.text = ""
            Field4.text = ""
            Field1.becomeFirstResponder()
        }
    }


        return true
    }

我缺少什么?

2 个答案:

答案 0 :(得分:0)

尝试:

func textFieldShouldClear(textField: UITextField) -> Bool {
    textField.text = ""
    textField.resignFirstResponder()
    return false
}

同时从属性检查器中选择适当的选项。

enter image description here

答案 1 :(得分:0)

你可以这样:

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

if textField.text?.characters.count == 1 && string == "" {
    if textField == txt2 {
        txt2.text = ""
        txt1.becomeFirstResponder()
    } else if textField == txt3 {
        txt3.text = ""
        txt2.becomeFirstResponder()
    } else if textField == txt4 {
        txt4.text = ""
        txt3.becomeFirstResponder()
    }
}
return true

}

如果可能,您应该创建一个单独的按钮,其中clearText操作可以清除所有文本字段,而不是从清除按钮清除文本字段。根据默认的iOS清除按钮行为,它看起来会更好的UI / UX