我在模态表格中提出了一个视图。它可以工作,但是键盘在横向上屏蔽了屏幕的下半部分(屏幕的一小部分是纵向的)。如何补偿iPad上的键盘?
UI基本上是屏幕左侧3/4处的大文本框,以及沿着桌面视图右边缘的一条照片。我需要调整tableview的大小,以便用户可以滚动查看最后一个。
(我已经阅读了如何在iPhone上执行此操作,但相同的代码在iPad上无效。)
(键盘下方有3.5张照片,但如果您尝试将其向下滚动,则表格视图会反弹回此位置。)
答案 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