textFieldShouldBeginEditing被错误的文本字段触发

时间:2017-02-06 12:56:59

标签: ios iphone swift3 uitextfield

我有两个文本域[Color]dateNTextField,只设置了dateNTextField的委托:

prenomTextField

但是,即使他们有不同的标签,我在两个文本字段上点击也会得到相同的结果! 任何帮助都将非常感激。

编辑:

func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
    if textField.tag == self.dateNTextField.tag {
        print(textField.tag)
        self.view.endEditing(true)
    }
    return true
}

4 个答案:

答案 0 :(得分:1)

尝试将return true声明放入if条件中。

func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
        if textField == self.dateNTextField{
            self.view.endEditing(true)
            return true
        }
        return false
    }

答案 1 :(得分:0)

看起来您的文本字段具有相同的标记。 尝试比较文本字段而不是标记

func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
    if textField == self.dateNTextField{
        self.view.endEditing(true)
    }
    return true
}

答案 2 :(得分:0)

或者,您可以设置标识符(例如dateNTextField.accessibilityIdentifier),而不是使用标记。

初始化textFields并立即设置其标识符,然后只按其ID引用它们。

答案 3 :(得分:0)

您应该使用以下内容而不是使用文本字段标记:

func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
    if textField == self.dateNTextField {
        print(textField.tag)
        self.view.endEditing(true)
    }
    return true
}

它适用于你。