Используйте NSFontPanel для изменения цвета текста и фона текста в WebView.

Приложение:

У меня есть приложение Mac в Mac App Store со встроенным WebView, WebView содержит contenteditable DIV выступает в качестве текстового редактора.

Цель:

Я хотел бы изменить цвет переднего плана и фона выделенного текста в WebView через NSColorWellNSColorPanel механизм.

Проблема:

Когда я нажимаю на цвет в NSColorPanel, NSColorPanel автоматически вызывает changeColor: на первом респонденте.

Первый респондент - это частный класс WebKit, представляющий мой спорный DIV: WebHTMLView,

Вышеуказанный механизм ВСЕГДА изменяет цвет переднего плана выделенного текста. Мне нужен способ решить, нужно ли менять цвет переднего плана или фона.

Идеальное решение:

Было бы здорово, если NSColorPanel а также NSColorWell можно настроить, чтобы не вызывать автоматически changeColor: на первом респонденте, и пусть мой код обрабатывает изменение цвета.

Попробовал и потерпел неудачу:

1 ответ

Перехватить changeColor:, задавать editingDelegate веб-просмотра и реализации WebEditingDelegate метод webView:doCommandBySelector:,

например:

- (BOOL)webView:(WebView *)webView doCommandBySelector:(SEL)selector {
    if (selector == @selector(changeColor:)) {
        if (self.foregroundColorWell.active)
            return NO;
        return YES;
    }
    return NO;
}
Другие вопросы по тегам