如何在iOS和webviewdidfinishload上禁用超链接和复制/粘贴菜单未调用
我正在尝试禁用iOS UIwebview上的超链接和复制/粘贴菜单 所以我在谷歌上搜索,找到了很多答案。 然后我遇到了另一个问题“未调用webviewdidfinishload” 所以我添加了我的代码来请求您的帮助。(我确信我正确连接了IB插座) 另外,我仍然没有想到将mainWebView.delegate=self替换为self.mainWebView.delegate=self 有人能解释一下区别吗? 所以我不确定我的其他功能 [[[mainWebView子视图]lastObject]SetScrolEnabled:是] [[[mainWebView子视图]lastObject]setScrollsToTop:否]如何在iOS和webviewdidfinishload上禁用超链接和复制/粘贴菜单未调用,ios,uiwebviewdelegate,Ios,Uiwebviewdelegate,我正在尝试禁用iOS UIwebview上的超链接和复制/粘贴菜单 所以我在谷歌上搜索,找到了很多答案。 然后我遇到了另一个问题“未调用webviewdidfinishload” 所以我添加了我的代码来请求您的帮助。(我确信我正确连接了IB插座) 另外,我仍然没有想到将mainWebView.delegate=self替换为self.mainWebView.delegate=self 有人能解释一下区别吗? 所以我不确定我的其他功能 [[[mainWebView子视图]lastObject]Se
mainWebView.scalesPageToFit=是 这些措施是否有效 它应该在ios5到ios6.1上工作 多谢各位 在.h文件中
@interface HRViewController : UIViewController <UIWebViewDelegate>
{
UIWebView *mainWebView;
}
@property (strong, nonatomic) IBOutlet UIWebView *mainWebView;
@end
伊迪德
我使用了下面的代码,但仍然不起作用。。。
所有这些都不起作用
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
NSLog(@"canPerformAction: %@",NSStringFromSelector(action));
if (action == @selector(copy:) ||
action == @selector(paste:)||
action == @selector(cut:)) {
return NO;
}
return NO;
}
还有这个
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
UIMenuController *menuController = [UIMenuController sharedMenuController];
if (menuController) {
[UIMenuController sharedMenuController].menuVisible = NO;
}
return NO;
}
甚至这个
-(无效)viewDidLoad{
mainWebView.delegate=self;
}
还有这个
-(无效)viewDidLoad{
[self longPress:self.mainWebView];
}
请帮帮我。。这让我疯狂了一个星期。隐藏复制/粘贴菜单: 覆盖
canperformation:withSender:
方法,为不允许的操作返回NO
:
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
if (action == @selector(paste:))
return NO;
if (action == @selector(select:))
return NO;
if (action == @selector(selectAll:))
return NO;
return [super canPerformAction:action withSender:sender];
}
另一种方式:
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
UIMenuController *menuController = [UIMenuController sharedMenuController];
if (menuController) {
[UIMenuController sharedMenuController].menuVisible = NO;
}
return NO;
}
也检查
禁用超链接:
你可以从中得到这个问题的答案
关于UIWebView
:
如果使用ARC,则只写
@property (strong, nonatomic) IBOutlet UIWebView *mainWebView;
无需对属性进行@合成,其他方面
@interface HRViewController : UIViewController <UIWebViewDelegate>
{
UIWebView *mainWebView;
}
@property (nonatomic,retain) IBOutlet UIWebView *mainWebView;
@end
// .m file
- (void)viewDidLoad
{
mainWebView = [[UIWebView alloc] initWithFrame:self.view.bounds];
mainWebView.scalesPageToFit = YES;
mainWebView.delegate = self;
[[[mainWebView subviews] lastObject] setScrollEnabled:YES];
[[[mainWebView subviews] lastObject] setScrollsToTop:NO];
mainWebView.scalesPageToFit = YES;
[self.view addSubview:self.mainWebView];
NSURL *url = [NSURL URLWithString:@"http://www.mysite.com"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[mainWebView loadRequest:request];
}
@界面HRViewController:UIViewController
{
UIWebView*mainWebView;
}
@属性(非原子,保留)IBUIWebView*mainWebView;
@结束
//.m文件
-(无效)viewDidLoad
{
mainWebView=[[UIWebView alloc]initWithFrame:self.view.bounds];
mainWebView.scalesPageToFit=是;
mainWebView.delegate=self;
[[[mainWebView子视图]lastObject]SetScrolEnabled:是];
[[[mainWebView子视图]lastObject]setScrollsToTop:否];
mainWebView.scalesPageToFit=是;
[self.view addSubview:self.mainWebView];
NSURL*url=[NSURL URLWithString:@”http://www.mysite.com"];
NSURLRequest*request=[nsurlRequestRequestWithURL:url];
[mainWebView加载请求:请求];
}
这可能会对您有所帮助。要隐藏复制/粘贴菜单: 覆盖
canperformation:withSender:
方法,为不允许的操作返回NO
:
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
if (action == @selector(paste:))
return NO;
if (action == @selector(select:))
return NO;
if (action == @selector(selectAll:))
return NO;
return [super canPerformAction:action withSender:sender];
}
另一种方式:
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
UIMenuController *menuController = [UIMenuController sharedMenuController];
if (menuController) {
[UIMenuController sharedMenuController].menuVisible = NO;
}
return NO;
}
也检查
禁用超链接:
你可以从中得到这个问题的答案
关于UIWebView
:
如果使用ARC,则只写
@property (strong, nonatomic) IBOutlet UIWebView *mainWebView;
无需对属性进行@合成,其他方面
@interface HRViewController : UIViewController <UIWebViewDelegate>
{
UIWebView *mainWebView;
}
@property (nonatomic,retain) IBOutlet UIWebView *mainWebView;
@end
// .m file
- (void)viewDidLoad
{
mainWebView = [[UIWebView alloc] initWithFrame:self.view.bounds];
mainWebView.scalesPageToFit = YES;
mainWebView.delegate = self;
[[[mainWebView subviews] lastObject] setScrollEnabled:YES];
[[[mainWebView subviews] lastObject] setScrollsToTop:NO];
mainWebView.scalesPageToFit = YES;
[self.view addSubview:self.mainWebView];
NSURL *url = [NSURL URLWithString:@"http://www.mysite.com"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[mainWebView loadRequest:request];
}
@界面HRViewController:UIViewController
{
UIWebView*mainWebView;
}
@属性(非原子,保留)IBUIWebView*mainWebView;
@结束
//.m文件
-(无效)viewDidLoad
{
mainWebView=[[UIWebView alloc]initWithFrame:self.view.bounds];
mainWebView.scalesPageToFit=是;
mainWebView.delegate=self;
[[[mainWebView子视图]lastObject]SetScrolEnabled:是];
[[[mainWebView子视图]lastObject]setScrollsToTop:否];
mainWebView.scalesPageToFit=是;
[self.view addSubview:self.mainWebView];
NSURL*url=[NSURL URLWithString:@”http://www.mysite.com"];
NSURLRequest*request=[nsurlRequestRequestWithURL:url];
[mainWebView加载请求:请求];
}
这可能会对您有所帮助。谢谢您的回答。不幸的是,它对我仍然不起作用。我都试过了,但都没用。我甚至禁用了LongPress手势,但不起作用。将javascript添加到CSS也不起作用。。我不知道这个问题,但它让我发疯。。但一个进展是现在webViewDidFinishLoad被调用(nslog确认)。需要额外的帮助感谢您的回答。不幸的是,它对我仍然不起作用。我都试过了,但都没用。我甚至禁用了LongPress手势,但不起作用。将javascript添加到CSS也不起作用。。我不知道这个问题,但它让我发疯。。但一个进展是现在webViewDidFinishLoad被调用(nslog确认)。需要额外的帮助