Ранее для iOS 9 самым надежным методом определения того, подключена ли внешняя клавиатура, является прослушивание UIKeyboardWillShowNotification
и создание текстового поля первым ответчиком, как описано в this вопрос. Уведомление будет срабатывать при использовании виртуальной клавиатуры, но не будет срабатывать при использовании внешней клавиатуры.
Однако это поведение теперь изменилось с iOS 9. UIKeyboardWillShowNotification
также срабатывает, когда подключена внешняя клавиатура, так как теперь отображается новая панель инструментов клавиатуры.
По-прежнему можно определить высоту клавиатуры и принять решение, будет ли отображаться меньшая панель инструментов или большая виртуальная клавиатура. Однако этот метод не является надежным, поскольку высота клавиатуры изменилась между различными бета-версиями и не может считаться неизменной с течением времени.
Есть ли более надежный метод, который можно использовать с iOS 9?