K Kibo Скачать

Клавиатура iPhone закрывает поле ввода

Клавиатура поднимается ровно поверх той строки, в которую вы печатаете. Разбираем, почему это почти всегда вина страницы или приложения, а не самой клавиатуры, и что помогает на практике.

Вы нажимаете на поле ввода внизу экрана — строку комментария под статьёй, окно входа, виджет чата, прибитый к нижнему краю страницы, — и клавиатура поднимается ровно поверх него. Печатать можно, но ни текста, ни самого поля не видно. Кажется, что клавиатура встала не туда. Почти всегда дело в другом: страница или приложение под ней просто не подвинулись.

iOS ничего не двигает за приложение

Когда клавиатура появляется, система делает ровно одно: сообщает приложению или веб-странице, какого клавиатура размера и где именно она теперь стоит. Это стандартное уведомление, которое может слушать любое приложение, — и на этом обязанности iOS заканчиваются. Система не прокручивает страницу, не сжимает содержимое и не поднимает поле ввода. Она отдаёт замер и оставляет всё остальное тому, во что вы печатаете.

Аккуратно собранное приложение подписывается на это уведомление и перестраивает свою вёрстку: поднимает нужный блок так, чтобы поле осталось видимым над клавиатурой. Приложение, которое уведомление не слушает или ошибается в расчёте, оставляет поле там же, где оно было, — и клавиатура его закрывает просто потому, что полю никто не сказал сдвинуться.

Почему на сайтах это случается чаще, чем в приложениях

Нативное приложение, собранное на стандартных компонентах Apple, чаще всего справляется само: готовые элементы уже умеют уступать место клавиатуре. Веб-страница — в Safari или во встроенном браузере, который открывается по ссылке из Telegram или VK, — история другая. Мобильный Safari при появлении клавиатуры меняет видимую часть страницы, а не саму страницу, и блок, зафиксированный у нижнего края, легко оказывается позиционирован относительно полной высоты документа, а не уменьшившейся видимой области. Клавиатура поднимается навстречу полю, которое никуда не переехало, — и поле уходит за неё.

Чаты поддержки и поля комментариев — классический случай

Именно поэтому жалобы почти всегда про одно и то же: всплывающий чат поддержки в углу сайта, поле комментария под статьёй, строка сообщения в веб-версии сервиса. Все три обычно сделаны как узкая панель, прилипшая к нижнему краю экрана, — ровно та схема вёрстки, которая чаще всего промахивается мимо реальной границы клавиатуры. Обычная строка поиска или поле формы в середине страницы страдают редко: над ними достаточно содержимого, чтобы страницу можно было просто прокрутить пальцем.

Как понять, в чём именно дело

Что реально помогает

  1. Прокрутите страницу или экран пальцем, когда клавиатура уже поднята. Многие страницы, которые не подстраиваются сами, всё равно прокручиваются вручную, и небольшого движения хватает, чтобы вернуть поле наверх.
  2. Выйдите из поля и нажмите в него ещё раз. Часть страниц пересчитывает вёрстку только в момент, когда поле получает фокус, — второе нажатие при уже поднятой клавиатуре нередко чинит то, что не сработало с первого.
  3. На сайте в Safari попробуйте открыть версию для компьютера — переключатель лежит в меню страницы слева в адресной строке. Десктопная вёрстка заметно реже опирается на мобильный приём с блоком, приклеенным к низу.
  4. Если у сервиса есть собственное приложение — банка, маркетплейса, соцсети, — заполните ту же форму в нём. Нативная версия с большей вероятностью уступит клавиатуре место сама.
  5. Напишите в поддержку сервиса, если поле перекрывает на сайте, которым вы пользуетесь каждый день. Разработчику это правится одной правкой вёрстки, а вам иначе никак.

В настройках это не чинится

Отдельного переключателя, который заставил бы страницы подниматься над клавиатурой, в iOS нет — ни в разделе Настройки → Основные → Клавиатура, ни где-либо ещё. Это не параметр устройства, а поведение конкретного приложения или сайта. Сброс настроек, переустановка приложения и перезагрузка телефона здесь тоже почти никогда ничего не меняют: код страницы после перезагрузки остаётся тем же самым.

Помогает ли другая клавиатура?

Нет — и хуже тоже не станет. Любая клавиатура в iOS, встроенная или сторонняя, сообщает свой размер и положение через один и тот же системный механизм. Что делать с этой информацией, решает приложение или страница, а клавиатура не имеет технической возможности дотянуться через эту границу и подвинуть чужую вёрстку. Смена клавиатуры меняет её внешний вид, звук и раскладку — но не меняет того, чья это работа: освободить для неё место.

Единственное, что действительно влияет на картину со стороны клавиатуры, — её высота. Строка подсказок над буквами, дополнительный ряд цифр, панель эмодзи занимают вертикальные пиксели, и на странице, у которой запас и так был нулевой, более высокая клавиатура съедает поле раньше. Но причина остаётся прежней: страница рассчитывала на конкретную высоту вместо того, чтобы спросить систему, какая она сейчас.

Частые вопросы

Почему клавиатура закрывает именно то поле, в котором я печатаю?

iOS только сообщает приложению или странице размер и положение клавиатуры — двигать своё содержимое обязано само приложение. Если оно этого не делает, поле остаётся на прежнем месте, а клавиатура поднимается поверх него. Чаще всего так ведут себя блоки, зафиксированные у нижнего края веб-страницы: чаты поддержки и поля комментариев.

Почему в Telegram и Сообщениях такого не бывает, а в браузере бывает?

Мессенджеры собраны на стандартных компонентах, у которых поведение при появлении клавиатуры заложено с самого начала. Веб-страница ничего подобного бесплатно не получает: её автор должен сам пересчитать вёрстку под уменьшившуюся видимую область. Поэтому одна и та же форма в приложении работает нормально, а на сайте того же сервиса — нет.

Есть ли переключатель в настройках, который это исправит?

Нет. В iOS нет параметра, отвечающего за то, как приложения реагируют на появление клавиатуры, поэтому в разделе Настройки → Основные → Клавиатура искать нечего. Это не настройка телефона, а поведение конкретного приложения или сайта, и изменить его может только его разработчик.

Стоит ли перезагружать iPhone или переустанавливать приложение?

Обычно смысла нет. Перезагрузка помогает при подвисшем интерфейсе, а здесь интерфейс работает штатно — просто вёрстка не учитывает клавиатуру. Если проблема воспроизводится на одном и том же экране после перезагрузки, причина точно в приложении или странице, и дальше есть смысл только обходить её вручную или писать в поддержку.

Попробуйте на своей клавиатуре

Kibo — бесплатная клавиатура для iPhone с настоящим механическим звуком клавиш, набором тем и эффектами RGB-подсветки. Без аккаунта, без рекламы, и работает даже с выключенным полным доступом.

Загрузить в App Store

Похожие руководства

Все руководства