Клавиатура iOS не закрывается, вызывается вводом в iframe - PullRequest
3 голосов
/ 02 июля 2019

У меня есть модальное окно на моей веб-странице, которое содержит <iframe> со страницей, хранящейся на удаленном сервере. Эта страница содержит форму с некоторыми элементами <input>. Когда пользователь нажимает кнопку «Закрыть» на модальном, то скрывается модальное с iframe.

Проблема: Если пользователь начинает вводить что-то в <input> в <iframe>, а затем закрывает модальное окно, клавиатура не закрывается, пока не нажмет кнопку Done.

Я упростил этот пример, удалил модальную сущность и представил две кнопки: одна скрывает модальную, а другая удаляет ее из DOM.

Я пытался поиграть с window.activeElement, явно устанавливая фокус на разные элементы на корневой странице (вы можете проверить это в демонстрационной версии), пытался вызвать метод .blur() на iframe или iframe.contentWindow. В моем приложении <iframe> скрывается, но я пытался удалить его со страницы.

Текущее поведение:

  • Пользователь начинает вводить что-то в <input> в <iframe>
  • Открывается клавиатура iOS
  • удаляет / скрывает iframe
  • Клавиатура iOS все еще открыта, даже если <input> не существует или скрыт.

Issue screenshot

Я предполагаю, что клавиатура должна быть скрыта, если ни один элемент, с которым она была запущена, больше не представлен, как это было сделано в Android / Chrome.

У меня есть несколько вопросов в этом случае:

  • можно ли как-то разрешить это поведение в моем приложении?
  • если это ошибка в iOS или WebKit, есть ли какой-нибудь трекер ошибок, предоставленный Apple или сообществом для решения такого рода проблем?

1 Ответ

0 голосов
/ 02 июля 2019

Использование цепочки ответчика: UIApplication.sharedApplication (). SendAction ("resignFirstResponder", to: nil, from: nil, forEvent: nil)

Использование endEditing UIView: self.view.endEditing (правда)

...