Дескриптор "Копировать" и "Определить" элементы всплывающего меню

Попытка сделать некоторую работу с текстом, выделенным в 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')"];
    }
}
Другие вопросы по тегам