如何调整视图大小以消除iPad的键盘?

时间:2012-09-20 18:03:53

标签: ipad on-screen-keyboard

我在模态表格中提出了一个视图。它可以工作,但是键盘在横向上屏蔽了屏幕的下半部分(屏幕的一小部分是纵向的)。如何补偿iPad上的键盘?

UI基本上是屏幕左侧3/4处的大文本框,以及沿着桌面视图右边缘的一条照片。我需要调整tableview的大小,以便用户可以滚动查看最后一个。

(我已经阅读了如何在iPhone上执行此操作,但相同的代码在iPad上无效。)

Note UI

(键盘下方有3.5张照片,但如果您尝试将其向下滚动,则表格视图会反弹回此位置。)

1 个答案:

答案 0 :(得分: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

相关问题