5

私はその週の初めに、そして今またこの問題に遭遇しました。ユーザーがiPadの横向きモードのときにキーボードが画面に表示されるときのキーボードオフセットを設定中です。iPadのサイズは1024x768です。

- (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だと思います。これはバグですか?

4

1 に答える 1

10

http://developer.apple.com/library/ios/documentation/uikit/reference/UIWindow_Class/UIWindowClassReference/UIWindowClassReference.html#//apple_ref/doc/uid/TP40006817-CH3-SW27から

UIKeyboardFrameBeginUserInfoKey

画面座標でキーボードの開始フレームを識別する CGRect を含む NSValue オブジェクトのキー。これらの座標は、インターフェイスの向きが変化した結果としてウィンドウの内容に適用される回転係数を考慮していません。したがって、四角形を使用する前に、(convertRect:fromWindow: メソッドを使用して) ウィンドウ座標に変換するか、(convertRect:fromView: メソッドを使用して) ビュー座標に変換する必要がある場合があります。

于 2012-12-21T16:09:37.213 に答える