Размеры клавиатуры iPad - PullRequest
16 голосов
/ 30 апреля 2010

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

Ответы [ 4 ]

60 голосов
/ 05 сентября 2011

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

[[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 каким-либо другим способом, используйте его.

18 голосов
/ 26 октября 2010

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

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

11 голосов
/ 24 января 2012

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

8 голосов
/ 30 апреля 2010

Я только что нашел это, если кому-то еще это нужно.
Клавиатура Уведомление Информация о пользователях Клавиши

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