Я создаю пользовательскую клавиатуру, и я не хочу поддерживать ландшафтный режим. Таким образом, если пользователь поворачивает устройство в альбомный режим, клавиатура все равно должна находиться в портретном режиме. Я попытался следующие методы:Отключить вращение пользовательской клавиатуры в ios
-(BOOL)shouldAutorotate {
return NO;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationPortrait;
}
- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskPortrait;
}
и
-(void)viewDidLoad{
NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationPotrait];
[[UIDevice currentDevice] setValue:value forKey:@"orientation"];
}
Но ни один из методов не работает. Единственный способ срабатывает при вращении устройства:
-(void)viewWillTransitionToSize:(CGSize)size
withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
Здесь я получаю текущий размер вида после поворота. Но как остановить поворот? Любая помощь будет оценена по достоинству.
Это то, что вы ищете: http://stackoverflow.com/questions/6941849/disable-orientation-for-keyboard-in-iphone – Ariel
@Ariel: Я уже пробовал это. Не работает. – Poles
Я также создаю пользовательскую клавиатуру и использую автоматические макеты для сохранения портретного и ландшафтного режима. У меня такой же случай, как у вас. Вы используете автоматические макеты или отключили автомасштабирование? – Ariel