Дескриптор «Копировать» и «Определить» элементы всплывающего меню - PullRequest
0 голосов
/ 29 марта 2012

Попытка выполнить некоторую работу с текстом, выделенным в UIWebView.Есть 2 кнопки, которые всплывают:

Копирование и определение

enter image description here

На очень высоком уровне, как я могу сделать следующее?

1) Получить значение выделенного текста

2) Добавить еще один пункт меню

Спасибо

Ответы [ 2 ]

2 голосов
/ 29 марта 2012

Этот туториал подробно отвечает на ваши вопросы:)

http://ios -blog.co.uk / category / tutorials / rich-text-edit-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')"];
    }
}
1 голос
/ 29 марта 2012

Синглтон UIMenuController - это черное всплывающее окно с кнопками, и в документации есть хорошая информация о том, как с этим работать (представление вручную, добавление новых элементов, реагирование на действия и т.д.)

Что касается получения выделенного текста, я вижу, что вы используете редактируемый div в UIWebView, что означает, что вы должны отвечать на действия по редактированию через JavaScript.

...