0

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

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

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

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

4

1 回答 1

0

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

    - (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];
    });
}

这允许视图重绘插图

于 2014-11-21T13:16:25.883 回答