【问题标题】:Disabling Magnifying Glass in UITextView in an iPhone App在 iPhone 应用程序的 UITextView 中禁用放大镜
【发布时间】:2011-02-04 02:53:23
【问题描述】:

我想显示文本,并且我希望能够知道用户在文本中触摸的位置。因为文本可能很长,我想使用 UITextView 以便包装和一切都得到照顾。当触摸开始或移动时,我想要我自己的事件处理。我的问题是放大镜和选择/选择所有菜单正在中断我的 touchesMoved 事件。

如何禁用放大镜,但仍启用用户交互以便检测触摸?

【问题讨论】:

    标签: iphone uitextview touchesmoved


    【解决方案1】:

    你必须创建一个子类并重写这两个函数来禁用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
    

    参考: https://stackoverflow.com/a/10641203/1526023

    【讨论】:

      【解决方案2】:

      我建议检查 gestureRecognizers 属性。

      您会在数组中找到很多它们,并且可能希望将它们全部删除,或者找到触发您要拦截并删除/替换它的事件的那些。

      我用它从 UITextField 中删除复制/粘贴和放大镜功能

      【讨论】:

      • Dwery,你是怎么做到的?我移除了 8 个手势识别器,但握住时放大镜还在。
      • Natan,IIRC 手势识别器在每个事件后重新初始化。所以我删除了股票识别器并在每个事件之后添加我自己的
      • 谢谢,德韦里!我会检查的
      【解决方案3】:

      您可以尝试此处提供的提示: How disable Copy, Cut, Select, Select All in UITextView

      【讨论】:

        猜你喜欢
        • 2012-05-25
        • 1970-01-01
        • 1970-01-01
        • 2012-03-02
        • 1970-01-01
        • 2015-12-19
        • 1970-01-01
        • 1970-01-01
        • 2021-11-28
        相关资源
        最近更新 更多