Как включить клавиатуру, как в iMessages/FB Messenger, в альбомном режиме на iOS8?
В моем проекте у меня есть textViews со связанной клавиатурой ввода, которая выглядит странно в ландшафтном режиме на iPhone 6 Plus под iOS8, как показано ниже:
Кажется, что иногда он имеет разную внутреннюю направленность.
Но в некоторых случаях клавиатура вращается нормально, но при изменении ориентации и других видимых ошибках по-прежнему остаются белые пробелы:
и наконец мы имеем обычный расширенный ландшафтный вид:
Вопрос в том, как получить расширенную клавиатуру без ошибок следующим образом:
2 ответа
Очень важная вещь при переносе проектов из xCode5.1
(и раньше) xCode6
это изменить Info.plist
файл путем добавления Launch screen interface file base name
ключ
Вы можете событие установить пустую строку (обычно это имя Launch xib
). Без этой простой строки все проблемы будут представлены на скриншотах выше.
Отсутствие Launch screen interface file base name
приводит к работе в режиме совместимости со стандартным разрешением старых устройств. Давайте запустим следующий код в проекте в каждом случае
NSLog(@"bounds = %@", NSStringFromCGRect(UIScreen.mainScreen.bounds));
С Launch xib
один получает
bounds = {{0, 0}, {414, 736}} // for iPhone 6Plus
bounds = {{0, 0}, {375, 667}} // for iPhone 6
Без этого можно
bounds = {{0, 0}, {320, 568}}
Итак, последний случай - это режим совместимости.
Я нашел такую же проблему. Когда я разрешал вращать только 1 моему контроллеру вида. Как только я заходил внутрь экрана, я включал поворот экрана и, выходя из экрана, отключал его. Все работало нормально, кроме клавиатуры. Я искал решение на многих форумах, но не нашел ничего полезного. Во всяком случае, я попытался понять шаблон и обнаружил, что я использовал viewDidDisappear вместо viewWillDisappear.
Важно отключить ориентацию перед тем, как перейти на другой экран. Надеюсь, это поможет.