Skip to main content
 首页 » 操作系统

ios之向 UITextView 添加手势会取消默认行为

2024年01月01日71pengyingh

我想向 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。