Почему клавиатура на iPhone сбрасывается при переключении приложений
Расширение разбирается каждый раз, когда клавиатура скрывается, поэтому всё, что жило только в памяти, уходит вместе с ним. И тот же механизм — причина, по которой клавиатура ничего не стоит, пока вы не печатаете.
Вы что-то настраиваете, на минуту переключаетесь, возвращаетесь — и всё как было. Это не сбой: это та же конструкция, что объясняет холодный старт.
Расширение разбирается, а не ставится на паузу
Когда клавиатура скрывается, iOS не ставит её на паузу: как правило, процесс завершается. При следующем появлении он запускается заново.
Отсюда видно, что теряется: всё, что жило только в памяти. Состояние Caps Lock, позиция во вкладке эмодзи, прокрутка, наполовину открытое меню. И столь же ясно, что остаётся: всё, что было записано на диск.
Что должно оставаться, а что нет
Аккуратно сделанная клавиатура записывает ваши решения сразу, а не держит их в памяти:
- Выбранное оформление, звук, сила тактильной отдачи — должны пережить перезапуск.
- Недавно использованные эмодзи — тоже.
- Caps Lock, текущий слой, позиция прокрутки — намеренно не должны переживать. Они относятся к тому, что вы печатаете сейчас, а не к вашим настройкам.
Так что если сбрасывается оформление — это дефект. Если слетает Caps Lock — это ожидаемое поведение.
Обратная сторона — преимущество
Именно потому, что расширение выгружается, клавиатура ничего не потребляет, пока вы не печатаете. Ни фонового процесса, ни расхода батареи, ни занятой памяти. Цена — ровно этот сброс.
Это осознанное решение системы, и для устройства, которое весь день лежит в кармане, оно верное. Клавиатура, постоянно висящая в памяти, была бы хуже во всём остальном.
Когда это всё-таки дефект
- Оформление возвращается к стандартному после смены приложения — значит настройка не записывается.
- Клавиатура вообще перестаёт появляться и её приходится добавлять заново — это указывает на проблему с регистрацией расширения.
- Медленно каждое появление, а не только первое — значит при запуске грузится слишком много; см. [[why-does-a-third-party-keyboard-lag-the-first-time-it-opens]].
Всё остальное — регистр, слой, прокрутка — нормально и будет вести себя так же на любом iPhone.
Частые вопросы
Почему Caps Lock не остаётся включённым?
Потому что он относится к тому, что вы печатаете сейчас, и живёт только в памяти. При скрытии клавиатуры расширение выгружается, и это состояние уходит вместе с ним. Так задумано.
Моё оформление пропадает при смене приложения.
Вот это дефект. Настройки вроде оформления, звука и тактильной отдачи должны записываться на диск и переживать перезапуск расширения.
Тратит ли клавиатура батарею, когда я не печатаю?
Нет. Именно потому, что расширение выгружается, ничего не работает в фоне. Сброс — плата за это преимущество.
Попробуйте на своей клавиатуре
Kibo — бесплатная клавиатура для iPhone с настоящим механическим звуком клавиш, набором тем и эффектами RGB-подсветки. Без аккаунта, без рекламы, и работает даже с выключенным полным доступом.