Дескриптор "Копировать" и "Определить" элементы всплывающего меню
Попытка сделать некоторую работу с текстом, выделенным в UIWebView. Есть 2 кнопки, которые всплывают:
Копировать и определить
На очень высоком уровне, как я могу сделать следующее?
1) Захватить значение выбранного текста
2) Добавить еще один пункт меню
Спасибо
2 ответа
UIMenuController
"Синглтон" - это черное всплывающее окно с кнопками, и в документации есть хорошая информация о том, как с этим работать (представление вручную, добавление новых элементов, реагирование на действия и т. д.).
Что касается получения выделенного текста, я вижу, что вы используете редактируемый div в UIWebView
Это означает, что вы должны отвечать на редактирование действий с помощью JavaScript.
Этот урок подробно отвечает на ваши вопросы:)
http://ios-blog.co.uk/category/tutorials/rich-text-editing-a-simple-start-part-1/
В частности, для добавления пункта меню выполните что-то вроде следующего из части 3. Поместите следующее в файл реализации контроллера корневого представления:
UIMenuItem *highlightMenuItem = [[UIMenuItem alloc] initWithTitle:@"Highlight" action:@selector(highlight)];
[[UIMenuController sharedMenuController] setMenuItems:[NSArray arrayWithObject:highlightMenuItem]];
с помощью метода выделения следующим образом:
- (void)highlight {
NSString *currentColor = [webView stringByEvaluatingJavaScriptFromString:@"document.queryCommandValue('backColor')"];
if ([currentColor isEqualToString:@"rgb(255, 255, 0)"]) {
[webView stringByEvaluatingJavaScriptFromString:@"document.execCommand('backColor', false, 'white')"];
} else {
[webView stringByEvaluatingJavaScriptFromString:@"document.execCommand('backColor', false, 'yellow')"];
}
}