2012-05-21 289 views
0

我有一個單一的視圖應用程序,只包含一個Web視圖和一個文本字段,就像一個地址欄。選擇網頁的一部分後,我想按下一個按鈕來複制它(所有的選擇包括文本和圖片)並自動將其粘貼到另一個視圖中。 我可以將一個按鈕添加到編輯菜單(儘管我不知道如何刪除複製和粘貼按鈕),但我不知道如何獲取選擇。UIWebView複製/粘貼

我試圖使用手勢識別器來做到這一點,但我找不到方法來獲得選擇。我將視圖控制器設置爲UIWebViewDelegateUIGestureRecognizerDelegate,並試圖實現touchesBegan,touchesMovedtouchesEnded,但在開始選擇時不會調用它們。你是否知道一個這樣的例子,或者至少將我指向好的方向?謝謝!

UIMenuItem *menuItem = [[UIMenuItem alloc] initWithTitle:@"Copy String" action:@selector(stringFromSelection:)]; 
UIMenuController *menuController = [UIMenuController sharedMenuController]; 
menuController.menuItems = [NSArray arrayWithObject:menuItem]; 

-(void)stringFromSelection:(id)sender 
{ 
NSString *selectionString = [browserView stringByEvaluatingJavaScriptFromString:@"window.getSelection()"]; //browserView is UIWebView class 
NSLog(@"selected string = %@",selectionString); 
} 
+0

你試過'[webView stringByEvaluatingJavaScriptFromString:@「window.getSelection()」];'? –

+0

我才能選定的文本使用JavaScript –

+0

@Malek_Jundi只是去嘗試,但我的應用程序崩潰:終止應用程序由於未捕獲的異常「NSInvalidArgumentException」,原因是:「 - [UIMenuController stringByEvaluatingJavaScriptFromString:]:無法識別的選擇發送到實例0x6a9ee80」 –

回答

0

的解決方案,使選定的文本,並將其複製到.ToString()添加到您的功能。最後這將是:

-(void)stringFromSelection:(id)sender 
{ 
NSString *selectionString = [browserView stringByEvaluatingJavaScriptFromString:@"window.getSelection().ToString()"]; 
NSLog(@"selected string = %@",selectionString); 
} 

我不知道這是否會與圖像也工作..測試它。