【发布时间】:2017-07-13 04:09:23
【问题描述】:
我有一个启用了清除按钮的 UITextField。我还有一些代码可以在用户点击屏幕上的其他任何位置时关闭键盘:
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboard))
tap.cancelsTouchesInView = false
view.addGestureRecognizer(tap)
func dismissKeyboard() {
view.endEditing(true)
}
问题是这段代码干扰了清除按钮,所以文本字段永远不会被清除。如何防止点击手势识别器处理清除按钮点击?
【问题讨论】:
-
我原以为手势会跟随 up 视图层次结构,但可能不会。您可以检测按钮层是否被点击(甚至可能是视图,但这里可能存在问题。一旦您知道点击了什么,您就可以正确地指导流程。
-
如果用户点击它会发生什么?按钮应该优先还是手势优先或两者兼而有之?如果没有触发手动调用 IBAction 并将按钮作为发送者发送
-
按钮应该优先。而且我在屏幕上还有另一个正常的 UIButton 应该优先但它始终是手势识别器。
标签: ios swift button keyboard uitapgesturerecognizer