В веб-просмотре, как узнать, когда вход должен resignFirstResponder - PullRequest
0 голосов
/ 28 июня 2018

Части моего приложения предоставляют пользователям формы через веб-просмотр. У меня было несколько пользователей, спрашивавших, почему после ввода данных в поле, когда они продолжают прокручивать форму / веб-просмотр, клавиатура остается видимой на экране. Я не могу найти какой-либо метод делегата textarea или textfield, который бы отклонил клавиатуру.

Я опасаюсь начать добавлять распознаватели жестов, потому что я не хочу отменять прикосновения к веб-представлению.

1 Ответ

0 голосов
/ 25 января 2019

Нативное поведение: Клавиатура автоматически показывает фокус на UITextView, чтобы снова его скрыть, вам нужно позвонить себе на UIView [self.view endEditing:YES];

В WKWebView клавиатура также автоматически показывает, например, фокус на HTMLInputElement и скрывает размытие. Но WKWebView не размывает фокус HTMLInputElement, нажимая где-то снаружи (например, на теле), поэтому клавиатура все еще остается в представлении.

Если вы хотите спрятать клавиатуру после некоторой прокрутки, вы можете просто пойти с небольшим JS (вставить ее только в WKWebView):

var SKIP_BLURRING = ['INPUT', 'TEXTAREA'];

document.body.addEventListener('touchend', function (event) {
    var activeElement = document.activeElement;
    var tapped = event.target;
    var shouldSkipElement = SKIP_BLURRING.indexOf(tapped.tagName) > -1;
    var isSameElement = activeElement === tapped;

    if (shouldSkipElement || isSameElement) {
        return;
    }

    activeElement.blur();
}, false);
...