1

モーダル フォーム シートでビューを表示しています。動作しますが、横向きではキーボードが画面の下半分をブロックします (縦向きでは画面のごく一部)。iPad のキーボードを補正するにはどうすればよいですか?

UI は基本的に、画面の左 3/4 にある大きなテキスト ボックスと、テーブルビューの右端に沿った一連の写真です。ユーザーがスクロールして最後のビューを表示できるように、テーブルビューのサイズを変更する必要があります。

(iPhone でこれを行う方法を読んだことがありますが、同じコードは iPad では機能しません。)

注UI

(キーボードの下に 3.5 枚の写真がありますが、下にスクロールしようとすると、テーブル ビューがこの位置に戻ります。)

4

1 に答える 1

0

私の問題は、 でファーストレスポンダを割り当てたことが原因でしたviewWillAppear。その時点で、キーボード通知が発生しますが、ビューが実際には表示されていないため、新しいビューに変換された座標は有効ではありません。

したがって、これを行う代わりに:

- (void)viewWillAppear: (BOOL)animated {
    [super viewWillAppear: animated];

    // register for keyboard events here

    [_field becomeFirstResponder];
}

私は今これをやっています:

- (void)viewWillAppear: (BOOL)animated {
    [super viewWillAppear: animated];

    // register for keyboard events here

    dispatch_async(dispatch_get_main_queue(), ^{
        [_field becomeFirstResponder];
    });
}

それ以外の場合、問題は非常に単純です。キーボード フレームを見つけてローカル座標に変換し、ビューを調整してダッキングします。

テスト プロジェクトを github に投稿しました: Keyboard Ducker

于 2012-09-27T01:48:16.610 に答える