我想向 UITextView 添加单击手势,这样当我的保存对话框打开时,我可以通过点击 UITextView 来取消它。但是,当我这样做时,它取消了 textview 的正常单击行为。现在,当我在没有保存抽屉的情况下单击文本时,它什么也不做。点击确实会正确触发回调方法,但它会取消 UITextView 的默认操作(将光标放在您点击的任何位置)。
// Add gesture to cancel saving
let singleCodeTextViewTap = UITapGestureRecognizer(target: self, action: Selector("codeTextViewTapped"))
singleCodeTextViewTap.numberOfTapsRequired = 1;
codeTextView.addGestureRecognizer(singleCodeTextViewTap)
func codeTextViewTapped() {
if saveDrawerOut {
moveFilenameBannerOffScreen()
saveAsTextField.text = ""
}
}
如何在单击手势时启用 UITextView 的默认行为?
编辑
我尝试添加 cancelsTouchesInView = false 并且这似乎不起作用,尽管它看起来像是正确的答案。所以现在我的代码看起来像这样:
singleCodeTextViewTap = UITapGestureRecognizer(target: self, action: Selector("codeTextViewTapped"))
singleCodeTextViewTap.numberOfTapsRequired = 1
singleCodeTextViewTap.cancelsTouchesInView = false
codeTextView.addGestureRecognizer(singleCodeTextViewTap)
请您参考如下方法:
将 singleCodeTextViewTap 的 delegate 设置为您的 View Controller ,实现 gestureRecognizerShouldBegin: 并返回 false 如果 saveDrawerOut 为 true。
