2011-01-19 81 views
2

當用戶在UITextView或UIWebView中選擇某些文本時,將顯示UIMenuController。有什麼方法可以編程訪問這個選定的文本?顯示UIMenuController時獲取選定文本

我需要它,因爲我想將自定義項添加到UIMenuController:'Search'選項,它將用於搜索數據庫中的選定文本。

爲了將文本複製到粘貼板並在下一次從UIPasteBoard中獲取它,是否可以不使用「複製」項目? - 我對這種解決方法不感興趣。

回答

5

我所做的就是這種方法添加到一個UIWebView的類別:

- (NSString *)selectedText { 
    return [self stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString()"]; 
} 

之後,我可以使用[webView selectedText]來訪問當前的選擇。

+0

這就是我需要的。謝謝! – manicaesar 2011-01-20 15:14:01

1

難道你看看蘋果的documentation.You可以使用所提供的屬性的MenuItems創建自定義UIMenuController.Have下面

alt text

看看圖像,並按照this

鏈接瞭解詳情。

您還可以查看Apple提供的示例代碼以瞭解該功能。

http://developer.apple.com/library/ios/#samplecode/TableViewUpdates/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010139

在此示例代碼,他們在UIMenuController秀 「電子郵件」。

所以,儘管代碼...所有最好的...

乾杯

+1

我知道如何自定義菜單項添加到UIMenuController,但不知道如何訪問選定的文本。我不夠精確。不過,謝謝你的回覆。 – manicaesar 2011-01-20 15:03:50

1

要從一個UIWebView顯示PDF文本搶這將工作

-(void)copiedString{ 

    [[UIApplication sharedApplication] sendAction:@selector(copy:) to:nil from:self forEvent:nil]; 
    NSString *copiedString = [UIPasteboard generalPasteboard].string; 
    NSLog(@"Copied String: %@",copiedString); 
}