Изменение ориентации клавиатуры вручную для вида, расположенного поверх вида камеры - PullRequest
0 голосов
/ 12 марта 2010

Я в основном пытаюсь воспроизвести основные функциональные возможности приложения «Сразу». У меня есть вид с камеры и другой вид с текстовым обзором.

Я добавляю оба вида в окно. Пока все хорошо.

[window addSubview:imagePicker.view];
[window addSubview:textViewController.view];

Я понимаю, что UIImagePickerController не поддерживает автоповорот, поэтому я обрабатываю его вручную, наблюдая за UIDeviceOrientationDidChangeNotifications и применяя необходимые преобразования к textViewController.view.

Теперь проблема здесь в клавиатуре. Если я ничего не делаю, он просто остается в портретном режиме. Я могу заставить его вращаться, добавив следующий код в обработчик уведомлений.

[[UIApplication sharedApplication] setStatusBarOrientation:interfaceOrientation];
[textView resignFirstResponder];
[textView becomeFirstResponder];

Однако следующий простой тест вызывает странное поведение.

  1. Запустите приложение в портретном режиме.
  2. Поверните устройство на 90 градусов по часовой стрелке.
  3. Поверните устройство на 90 градусов против часовой стрелки (обратно в исходное положение).
  4. Поверните устройство на 90 градусов по часовой стрелке.

После шага 4 вместо клавиатуры в альбомном режиме отображается клавиатура в портретном стиле, перекошенная для вписывания в рамку альбомной клавиатуры.

Возможно, мой подход неверен с самого начала. Мне было интересно, смог ли кто-нибудь надежно заставить клавиатуру изменить свою ориентацию в ответ на setStatusBarOrientation.

1 Ответ

0 голосов
/ 12 марта 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...