我想显示文本,并且我希望能够知道用户在该文本中触摸的位置。因为文本可能很长,我想使用 UITextView 以便包装和一切都得到照顾。当触摸开始或移动时,我想要我自己的事件处理。我的问题是放大镜和选择/选择所有菜单正在中断我的 touchesMoved 事件。
如何禁用放大镜,但仍启用用户交互以便检测触摸?
我想显示文本,并且我希望能够知道用户在该文本中触摸的位置。因为文本可能很长,我想使用 UITextView 以便包装和一切都得到照顾。当触摸开始或移动时,我想要我自己的事件处理。我的问题是放大镜和选择/选择所有菜单正在中断我的 touchesMoved 事件。
如何禁用放大镜,但仍启用用户交互以便检测触摸?
您必须创建一个子类并覆盖这两个函数以禁用select/select all/copy/
和magnifying
select/select all/copy/
:
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
参考: https ://stackoverflow.com/a/1429320/1526023
magnifying
:
- UILongPressGestureRecognizer
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
我建议检查gestureRecognizers属性。
您会在数组中找到很多它们,并且可能希望将它们全部删除,或者找到触发要拦截并删除/替换它的事件的那些。
我用它从 UITextField 中删除复制/粘贴和放大镜功能
您可以尝试此处提供的提示: 如何在 UITextView 中禁用复制、剪切、选择、全选