【问题标题】:How do I resize my view to duck the iPad's keyboard?如何调整视图大小以避开 iPad 的键盘?
【发布时间】:2012-09-20 18:03:52
【问题描述】:

我在模态表单中展示一个视图。它可以工作,但是键盘在横向时会挡住屏幕的下半部分(在纵向时会挡住屏幕的一小部分)。 iPad 上的键盘如何补偿?

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

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

(键盘下方有3.5张照片,但如果向下滚动,表格视图会弹回该位置。)

【问题讨论】:

    标签: ipad on-screen-keyboard


    【解决方案1】:

    我的问题是由于在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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-12
      • 1970-01-01
      • 2013-04-09
      • 1970-01-01
      • 2015-12-31
      • 1970-01-01
      • 2011-11-26
      • 1970-01-01
      相关资源
      最近更新 更多