禁用'复制'在uiwebview中,但不是'选择'

disable 'copy' in uiwebview but not 'select'.

本文关键字:选择 uiwebview 复制 禁用      更新时间:2023-09-26

我喜欢在uiwebview中禁用"复制",但不喜欢禁用"选择"选项。我该怎么做?这是因为我在JavaScript中使用window.getSelection()来选择用户选择并对其进行一些处理。打开的"copy"uimenucontrolleritem和"copy"功能是不需要的,这会混淆我的应用程序的用户。

取自https://stackoverflow.com/a/6614465/how-do-you-really-remove-copy-from-uimenucontroller

首先,您的UIWebView需要来自UIWebView的子类。在XCode中,转到文件->新建->文件。。。并添加一个名为"MyUIWebView"的新Objective-c类,使其成为UIWebView的子类。

在MyUIWebView.m文件中添加以下

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

从这里,将您的类与包含UIWebView的视图控制器链接起来,并遍历您的代码,用MyUIWebView替换所有UIWebView实例。

刚刚在ios 6.1模拟器上进行了测试,它似乎可以工作。