【问题标题】:Massive (~10 sec) delay presenting keyboard first time with UIPopoverPresentationController displayed在显示 UIPopoverPresentationController 的情况下首次显示键盘时出现巨大(约 10 秒)延迟
【发布时间】:2016-12-17 21:54:25
【问题描述】:

我已经构建了一个 iPad UI,我在其中展示了一个来自自定义 UIViewController 类的 UIPopoverPresentationController。 UI 由一个 UICollectionView 和许多单元格组成,每个单元格都包含一个按钮,该按钮将显示弹出框。弹出框将其 sourceRect 和 sourceView 属性设置为该按钮的相应属性;分别是frame和superview。

在这个弹出窗口中,有一个 UITextField。在自定义 UIViewController 初始化并呈现后第一次选择此字段时,在键盘呈现之前会有很长的延迟(大约 10 秒)。过程中没有控制台输出。随后的键盘演示流畅如丝。委托方法 popoverPresentationController:willRepositionPopoverToRect:inView 在这里根本没有被调用,而其他委托方法按预期触发。

我也尝试在相同的情况下使用旧的 UIPopoverController,产生相同的结果。

需要注意的是,UI 只是横向模式,并且弹出框会延伸到屏幕底部,因此在呈现时,弹出框会调整大小以适应键盘。我怀疑是这种调整大小导致了延迟,但我没有任何实际依据。

有没有其他人看到过这种行为和/或能够以某种方式克服它?对我来说,它闻起来像是苹果方面的一个错误,因为它只是第一次出现......但这对我并没有太大帮助。

感谢所有建议和想法。

另外,如果有足够声誉的读者可以为更新的 UIPopoverPresentationController 创建标签,那就太好了。

【问题讨论】:

    标签: ios objective-c ipad uipopovercontroller first-responder


    【解决方案1】:

    万一其他人遇到同样的情况,问题出在调试器上。

    史诗延迟仅在附加到调试器时出现。无需调试即可运行相同的构建,一切顺利。

    所以我花了 1.5 天的时间来调试一个不存在的错误。不过我做了一个复制器,所以我会向 Apple 提交错误报告。

    【讨论】:

      猜你喜欢
      • 2015-12-21
      • 1970-01-01
      • 1970-01-01
      • 2018-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-26
      • 2020-03-23
      相关资源
      最近更新 更多