2012-09-20 49 views
1

我在模态表单中呈现视图。它可以工作,但键盘会阻挡横向屏幕的下半部分(以及纵向屏幕的一小部分)。我如何补偿iPad上的键盘?如何调整我的视图来调整iPad的键盘?

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

(我读过如何做到这一点的iPhone,但相同的代码不会在iPad上运行。)

Note UI

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

回答

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

相关问题