Хорошо, я понял это. См. PR https://github.com/nnhubbard/ZSSRichTextEditor/pull/243
В основном вы вводите JavaScript, чтобы запустить слушателей. Ключевым моментом здесь является передача функции, которая вызывает webkit с использованием postMessage
и использование того же имени, в моем случае 'jsm'
, которое было установлено при создании объекта WKUserContentController
NSString *pasteListener = @"document.getElementById('zss_editor_content').addEventListener('paste', function() {window.webkit.messageHandlers.jsm.postMessage('paste');});";
[self.editorView evaluateJavaScript:pasteListener completionHandler:^(NSString *result, NSError *error) {
if (error != NULL) {
NSLog(@"%@", error);
}
}];
, а затемвы прослушиваете ответ в методе делегата userContentController: didReceiveScript
от WKScriptMessageHandler
- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message {
NSString *messageString = (NSString *)message.body;
if ([messageString isEqualToString:@"paste"]) {
self.editorPaste = YES;
}