2

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

你知道为什么我的 actionSheet 没有显示取消按钮吗?请帮忙!此问题可在 iOS 5 和 6 以及 3.5 英寸或以下的设备上重现

4

1 回答 1

0

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

- (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];
}

确保这是在子类中完成的!

于 2013-11-13T13:17:30.190 回答