禁用UITextField上的触摸但不是所有用户交互

时间:2013-02-05 11:36:46

标签: ios uitextfield touches

我有一个UITextField,但我希望能够控制它何时被聚焦以及什么时候没有聚焦。

为了实现这一点,我需要能够阻止该文本字段上的触摸事件。我知道我可以在它前面放一个按钮并手动执行它,但我想知道是否有任何方法可以禁用元素上的触摸。

非常感谢。

3 个答案:

答案 0 :(得分:16)

似乎没有办法用UITextField的属性来阻止触摸。我通过在文本字段上放置UIView来阻止触摸来解决这个问题。我使用属性检查器将UIView设置为“Clear Color”。适用于我的应用程序。

答案 1 :(得分:1)

userInteractionEnabled属性怎么样?

答案 2 :(得分:1)

编辑时我必须有光标交互,所以在设置isFserRedponder()之前我设置isUserInteractionEnabled = true并且在结束编辑时将其设置为false

@IBAction func editTapped(_ sender: UIButton) {
    textField.isUserInteractionEnabled = true
    textField.becomeFirstResponder()
}


func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
    print(textField.textValue)

    textField.isUserInteractionEnabled = false

    return true
}