Отключить ориентацию для клавиатуры в iPhone - PullRequest
0 голосов
/ 04 августа 2011

Мне нужно поддерживать только портретный режим для просмотра с клавиатуры.

Потому что у меня есть UIViewController, который поддерживает все ориентации.Он представляет контроллер View, который поддерживает только книжную ориентацию, и этот вид имеет текстовое поле.Когда TextField становится первым респондентом, всплывающее окно с клавиатурой.Теперь, если я меняю ориентацию устройства, клавиатура меняет ориентацию на Пейзаж.

Как сохранить клавиатуру в книжной ориентации?

Ответы [ 2 ]

1 голос
/ 04 августа 2011

Попробуйте:

Создайте iVar с именем UIInterfaceOrientation previousOrientation.

Когда вы говорите [textField becomeFirstResponder]; add:

[viewController shouldAutoRotateToInterfaceOrientation:UIInterfaceOrientationPortrait];

// Set the previousOrientation to whatever it was
previousOrientation = viewController.interfaceOrientation

// This prevents it from leaving portrait orientation
[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];

Затем в [textField resignFirstResponder], когдапользователь закрывает клавиатуру или нажимает ввод;Вы можете вернуться к исходной ориентации.

[ViewController shouldAutoRotateToInterfaceOrientation:previousOrientation];

// Turn the notifications back on so that it will be able to rotate again
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
1 голос
/ 04 августа 2011

Если вам просто нужна книжная ориентация, вы можете отключить автоповорот с помощью:

[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];
...