16

Apple のドキュメントで iPhone のキーボード バウンドを見つけましたが、iPad のキーボード バウンドを見つけることができません。手伝っていただけませんか?

4

4 に答える 4

60

コード内の回答全体は次のようになります。まず、通知に登録する必要があります。

[[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それを使用してください。

于 2011-09-04T21:41:16.320 に答える
18

iPhone の縦向きは 216 ピクセル、横向きは 162 ピクセル、iPad の縦向きは 264 ピクセル、横向きは 352 ピクセルです。これは、2010 年の US キーボードで有効です。

これらのサイズは他の言語では異なる場合があり、米国でも異なる場合があります。

于 2010-10-26T15:16:32.390 に答える
11

ユーザーが iPad で「分割」キーボードを使用することを選択した場合、UIKeyboardDidShowNotification /* UIKeyboardDidHideNotification * 通知は発生しないことに注意してください。代わりに、表示と非表示の両方でUIKeyboardDidChangeFrameNotification通知が発生します。正確に何が起こるか (表示または非表示) を把握するには、 keyboardFrame.origin.yを分析する必要があります。

于 2012-01-24T05:27:22.463 に答える
8

I just found it if somebody else needs it.
Keyboard Notification User Info Keys

于 2010-04-30T08:35:04.040 に答える