Почему высота клавиатуры iPad в ландшафтном режиме составляет 1024px?
Я столкнулся с этим вопросом ранее на этой неделе и снова только сейчас. Я нахожусь в процессе настройки смещения клавиатуры, когда клавиатура появляется на экране, когда пользователь находится в ландшафтном режиме iPad. iPad имеет размер 1024 x 768.
- (void) keyboardWasShown:(NSNotification *)nsNotification {
NSDictionary *userInfo = [nsNotification userInfo];
CGSize kbSize = [[userInfo objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
NSLog(@"Height: %f Width: %f", kbSize.height, kbSize.width);
// Portrait: Height: 264.000000 Width: 768.000000
// Landscape: Height: 1024.000000 Width: 352.000000
}
Как получилось, что высота клавиатуры может быть 1024? Это означало бы, что клавиатура теперь покрывает весь экран. Я бы предположил, что высота должна быть 352, а ширина-1024. Это что, жучок?
1 ответ:
UIKeyboardFrameBeginUserInfoKey
Ключ для объекта NSValue, содержащего CGRect, который идентифицирует начальный кадр клавиатуры в координатах экрана. Эти координаты не учитывают никакие коэффициенты поворота, применяемые к содержимому окна в целом. результат изменения ориентации интерфейса. Таким образом, перед использованием прямоугольника может потребоваться преобразовать его в координаты окна (с помощью метода convertRect:fromWindow:) или просмотреть координаты (с помощью метода convertRect:fromView:).