我有一个UITextView已设置所有dataDetectionTypes。我要删除UILongPressGestureRecognizer,因为长按后在电话号码文本或日历事件文本上显示的操作表无法正确显示。它没有显示“取消”按钮,因此我需要删除UILongPressGestureRecognizer。有人有主意吗?

您知道我的actionSheet为什么不显示“取消”按钮吗?请帮忙!
此问题在iOS 5和6以及3.5英寸或更小的显示屏上可重现

最佳答案

我将继续扩展上面评论中的内容。为了有效地做到这一点,您将要创建UITextView类的子类。这样做将允许您实现UIResponder的canPerformAction:函数,该函数将允许您有选择地决定希望在弹出菜单上使用哪些选项。您可以修改以下代码,以允许您想要的剪切/复制/粘贴/选择...的任意组合,或者如果您想同时阻止弹出窗口,只需从此函数返回NO而不调用其 super 实现。

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
    if (action == @selector(paste:) || action == @selector(select:) || action == @selector(selectAll:)) {
        return NO;
    }
    return [super canPerformAction:action withSender:sender];
}

但是,请确保在子类中完成此操作!

10-08 14:23