我試圖禁用超鏈接和複製/粘貼菜單在iOS UIwebview 所以我GOOGLE了,並有很多答案。 然後我遇到了另一個問題'webviewdidfinishload不叫' 所以我添加我的代碼來問你的幫助。 (Iam確定我正確連接IBOutlet)如何禁用超鏈接和複製/粘貼菜單在iOS和webviewdidfinishload不叫
另外,我還沒有想到把mainWebView.delegate = self而不是self.mainWebView.delegate = self 任何人都可以解釋它們的區別嗎? 所以IAM不知道我的其他功能,如 [[[mainWebView子視圖] lastObject] setScrollEnabled:YES] [[[mainWebView子視圖] lastObject] setScrollsToTop:NO]
mainWebView.scalesPageToFit = YES 這些工作或沒有。
應該對iOS5的合作,ios6.1 謝謝
在.h文件中
@interface HRViewController : UIViewController <UIWebViewDelegate>
{
UIWebView *mainWebView;
}
@property (strong, nonatomic) IBOutlet UIWebView *mainWebView;
@end
在.m文件
@interface HRViewController()
@end
@implementation HRViewController
@synthesize mainWebView;
- (void)viewDidLoad
{
[self startWebView];
[super viewDidLoad];
}
- (void)startWebView
{
mainWebView.delegate = self;
[[[mainWebView subviews] lastObject] setScrollEnabled:YES];
[[[mainWebView subviews] lastObject] setScrollsToTop:NO];
mainWebView.scalesPageToFit = YES;
mainWebView = [[UIWebView alloc] initWithFrame:self.view.bounds];
mainWebView.scalesPageToFit = YES;
[self.view addSubview:self.mainWebView];
NSURL *url = [NSURL URLWithString:/" @"http://www.mysite.com" "/];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[mainWebView loadRequest:request];
}
- (void)webViewDidFinishLoad:(UIWebView *)WebView {
NSLog(@"finish");
[WebView stringByEvaluatingJavaScriptFromString: @"document.documentElement.style.webkitUserSelect='none';"];
[WebView stringByEvaluatingJavaScriptFromString: @"document.documentElement.style.webkitTouchCallout='none';"];
}
- (void)webViewDidStartLoad:(UIWebView *)mainWebView {
NSLog(@"start");
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
NSLog(@"Error for WEBVIEW: %@", [error description]);
}
EDIED 我用下面的代碼,但仍然無法正常工作... 沒有這些d oesnt工作!!!!!
- (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 =自我; }
- (void)webViewDidFinishLoad:(UIWebView *)webView {
NSLog(@"finish");
// Disable user selection
[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitUserSelect='none';"];
// Disable callout
[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitTouchCallout='none';"];
}
也在本 - (無效)viewDidLoad中{ [自長按:self.mainWebView]; }
- (void)longPress:(UIView *)webView {
UILongPressGestureRecognizer* longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress)];
longPress.allowableMovement=100;
longPress.minimumPressDuration=0.3;
longPress.delaysTouchesBegan=YES;
longPress.cancelsTouchesInView=YES;
[webView addGestureRecognizer:longPress];
}
// I just need this for the selector in the gesture recognizer.
- (void)handleLongPress {
}
請幫我..它讓我發瘋,現在一個星期..
謝謝你的回答。不幸的是它仍然不適合我。我試了一下,但沒有任何工作。我甚至禁用了長時間的壓力,但沒有奏效。添加javascript到CSS也沒有工作..我不知道這個問題,但它使我瘋狂..但一個進展是現在webViewDidFinishLoad被稱爲(nslog comfirmed。)addtional幫助需要 – 2013-02-13 08:43:44
這不適用於UIWebViews,只有UITextViews。 – 2014-02-27 03:12:54