Я в основном пытаюсь воспроизвести основные функциональные возможности приложения «Сразу». У меня есть вид с камеры и другой вид с текстовым обзором.
Я добавляю оба вида в окно. Пока все хорошо.
[window addSubview:imagePicker.view];
[window addSubview:textViewController.view];
Я понимаю, что UIImagePickerController не поддерживает автоповорот, поэтому я обрабатываю его вручную, наблюдая за UIDeviceOrientationDidChangeNotifications и применяя необходимые преобразования к textViewController.view.
Теперь проблема здесь в клавиатуре. Если я ничего не делаю, он просто остается в портретном режиме. Я могу заставить его вращаться, добавив следующий код в обработчик уведомлений.
[[UIApplication sharedApplication] setStatusBarOrientation:interfaceOrientation];
[textView resignFirstResponder];
[textView becomeFirstResponder];
Однако следующий простой тест вызывает странное поведение.
- Запустите приложение в портретном режиме.
- Поверните устройство на 90 градусов по часовой стрелке.
- Поверните устройство на 90 градусов против часовой стрелки (обратно в исходное положение).
- Поверните устройство на 90 градусов по часовой стрелке.
После шага 4 вместо клавиатуры в альбомном режиме отображается клавиатура в портретном стиле, перекошенная для вписывания в рамку альбомной клавиатуры.
Возможно, мой подход неверен с самого начала. Мне было интересно, смог ли кто-нибудь надежно заставить клавиатуру изменить свою ориентацию в ответ на setStatusBarOrientation.