【问题标题】:ViewController canBecomeFirstResponder iOS 8ViewController canBecomeFirstResponder iOS 8
【发布时间】:2014-11-21 12:31:09
【问题描述】:

我有一个 VC,它有一个用于显示文本字段的 inputAccessoryView(很像消息应用程序)。当我将此视图推送到导航堆栈上时,一切正常,我的意思是 tableview 调整其 insets 以确保在该辅助视图下方没有滚动。但是,如果我从该视图中推送同一视图控制器类的另一个实例,则不会调整插图,并且表格的滚动将位于辅助视图的后面。

此问题仅在 iOS 8 中出现。另一个有趣的事情是,如果您随后在附件视图中单击以打开键盘,则插入会正确调整,以便键盘可见并在隐藏时再次调整。

此外,如果您不单击文本字段来修复问题并回击之前的 VC 也已损坏。

根据上面的信息,我相当确定这是一个 iOS 8 错误。我希望有人看到了这一点并提出了半合理的解决方案。

【问题讨论】:

    标签: ios8 inputaccessoryview


    【解决方案1】:

    令人讨厌的解决方案,但仍然是一个解决方案:

        - (void)viewDidAppear:(BOOL)animated
    {
        [super viewDidAppear:animated];
    
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.01 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            [self.inputAccessoryView.inputAccessoryTextField becomeFirstResponder];
            [self.inputAccessoryView.inputAccessoryTextField resignFirstResponder];
        });
    }
    

    这允许视图重绘插图

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多