Iphone Can';t在UIWebView中禁用复制/定义选择菜单
我知道这是最常见的问题之一。事实上,我发现了以下链接: 但我仍然无法从菜单选择中删除复制和定义项。我只想在菜单上显示我的“快速”和“另一个”项目。谁能给我指路吗?谢谢你抽出时间。这是我的代码和截图Iphone Can';t在UIWebView中禁用复制/定义选择菜单,iphone,ios,cocoa-touch,Iphone,Ios,Cocoa Touch,我知道这是最常见的问题之一。事实上,我发现了以下链接: 但我仍然无法从菜单选择中删除复制和定义项。我只想在菜单上显示我的“快速”和“另一个”项目。谁能给我指路吗?谢谢你抽出时间。这是我的代码和截图 - (BOOL)canPerformAction:(SEL)action withSender:(id)sender { if (action == @selector(quick:)) { NSLog(@"my quick view"); return
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
if (action == @selector(quick:)) {
NSLog(@"my quick view");
return YES;
}else if (action == @selector(another:)){
NSLog(@"my another view");
return YES;
}else if (action == @selector(copy:) ||
action == @selector(paste:)||
action == @selector(cut:) ||
action == @selector(define:) )
{
return NO;
}
return [super canPerformAction:action withSender:sender];
}
试着用这个方法
-(void)webViewDidFinishLoad:(UIWebView *)theWebView
{
[webView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitTouchCallout='none'; document.body.style.KhtmlUserSelect='none'"];
}
我希望它能帮助您……首先,要解决您的问题,请将
定义:
更改为\u定义:
以删除相关选项
但是,\u define:
是苹果私有API中的一个函数(因为\u
),如果你想在App Store上发布它们,就不能在产品中使用它们
但是,就您的复制:
选项而言,您的canperformation
应该将其删除
仅供参考,我在此附上一个私有API函数列表,canPerformAction将调用:
\u提示替换:
\u showTextStyleOptions:
\u定义:
\u添加快捷方式:
\u可访问性峰值:
\u可访问性PeakLanguage选择:
\u访问性音频讲话:
因此,如果要删除上述任何功能,必须创建自定义菜单栏。下面的视频将帮助您完成此技巧:
祝你好运
编辑:
以下是您的解决方案:
-(BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
if (action == @selector(quick:)) {
NSLog(@"my quick view");
return YES;
}else if (action == @selector(another:)){
NSLog(@"my another view");
return YES;
}
return NO;
}
谢谢你的建议,但这会毁了一切。我希望显示我的项目“快速”和“另一个”,禁用复制和定义。有关详细信息,请参阅。这是我在查看PDF时收到的API调用:-操作是:剪切:-操作是:选择:-操作是:选择全部:-操作是:粘贴:-操作是:删除:-操作是:\提示替换:-操作是:\显示文本样式选项:-操作是:\添加快捷方式:-操作是:\访问性峰值:-操作是:\访问性峰值语言选择:-操作是:_accessibilityPauseSpeaking:-操作是:makeTextWritingDirectionRightToLeft:-操作是:makeTextWritingDirectionLeftToRight:基本上,禁止包含任何以下划线开头的私有API。如果你碰巧把它们作为你代码的一部分,它肯定会被AppStore拒绝。更准确地说,苹果自己的私有API