Подтвердить что ты не робот

Размеры клавиатуры iPad

Я нашел границы клавиатуры iPhone в документации на Apple, но я не могу найти границы клавиатуры для iPad. Не могли бы вы помочь мне?

4b9b3361

Ответ 2

Весь ответ в коде выглядит следующим образом. Сначала вам необходимо зарегистрироваться для уведомлений:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];

и здесь есть . Обратите внимание, что вам также нужно будет избавиться от них (используйте removeObserver).

Затем вам нужен метод, который получает уведомление, чтобы получить размер. Обратите внимание, что размер сначала не вращается (поскольку UIWindow не вращается, его содержимое делает).

- (void) keyboardDidShow:(NSNotification*)notification {
        CGRect keyboardFrame = [[[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
        NSLog(@"keyboard frame raw %@", NSStringFromCGRect(keyboardFrame));

        UIWindow *window = [[[UIApplication sharedApplication] windows]objectAtIndex:0];
        UIView *mainSubviewOfWindow = window.rootViewController.view;
        CGRect keyboardFrameConverted = [mainSubviewOfWindow convertRect:keyboardFrame fromView:window];
        NSLog(@"keyboard frame converted %@", NSStringFromCGRect(keyboardFrameConverted));
}

Очевидно, что если у вас есть ссылка на ваш mainSubviewOfWindow другими способами, используйте его.

Ответ 3

Для iPhone в портрете 216 пикселей, пейзаж 162 пикселя, для iPad в портрете 264 пикселя и в ландшафтном 352 пикселях. Это справедливо для клавиатуры США в 2010 году.

Эти размеры могут отличаться для других языков и могут также измениться и для США.

Ответ 4

Обратите внимание, что если пользователь предпочитает использовать "разделенную" клавиатуру на iPad, уведомления UIKeyboardDidShowNotification/* UIKeyboardDidHideNotification * не будут запускаться. Вместо этого уведомление UIKeyboardDidChangeFrameNotification будет запущено как для показа, так и для скрытия. Вам нужно будет проанализировать keyboardFrame.origin.y, чтобы выяснить, что именно происходит (показать или скрыть).