Удаление WKWebView, оставляя клавиатуру открытойIOS

Программируем под IOS
Anonymous
Удаление WKWebView, оставляя клавиатуру открытой

Сообщение Anonymous »

Я много лет писал приложение, использующее UIWebView, и меня попросили обновить его для повторного выпуска. Простые изменения для поддержки WKWebView, но вот что странно. Если поле ввода активно, клавиатура поднята и пользователь закрывает представление, в первый раз оно исчезает нормально, но в следующий раз, когда клавиатура поднимается, оно закрывается. Невозможно устранить проблему, кроме как выйти из приложения и вернуться обратно.
Я написал простое небольшое тестовое приложение и могу воспроизвести проблему за пределами сложности приложения. Я также могу «исправить» это, но не удаляя WKWebView, а перерабатывая его. Проблема, конечно, в том, что он может содержать огромные объемы памяти, которые мне не нужны (я, конечно, мог бы направить их на пустую страницу), и что еще более разрушительно, то, что история предыдущего использования все еще присутствует. Неприемлемо для клиента. Я пробовал принудительно сместить фокус с помощью

Код: Выделить всё

[webView endEditing:true];
и я попробовал поместить команду в цикл, чтобы не избавиться от веб-просмотра до закрытия клавиатуры, но это ничего не меняет. Первая незаметно исчезает, как и должна быть, а вторая клавиатура никогда не исчезнет.
Так какой же приемлемый способ избавиться от WKWebView? Вот что у меня не работает, оставляя клавиатуру безжизненной при втором вызове:

Код: Выделить всё

[webView stopLoading];
webView.navigationDelegate = nil;
webView.scrollView.delegate = nil;
[webView removeFromSuperview];
webView = nil;
Спасибо за любую помощь!

Подробнее здесь: https://stackoverflow.com/questions/783 ... stuck-open

Вернуться в «IOS»