出现弹出框时 UI 没有响应

Posted

技术标签:

【中文标题】出现弹出框时 UI 没有响应【英文标题】:UI not responding when popover is presented 【发布时间】:2014-11-27 09:18:33 【问题描述】:

我有 2 个按钮,例如 button1button2。当我们点击button1 时,将显示popover。当popover 出现时,如果我们点击button2,它不会响应点击动作,而是popover 将被关闭。我需要的是,当我们点击button2 时,我需要关闭弹出窗口并且还应该执行button2 的操作。我怎么能同时得到这个。请给我一些建议。提前致谢。

【问题讨论】:

【参考方案1】:

根据 UIPopoverController 的默认行为,当用户在弹出框外点击时,它将被关闭。以下是 Apple 文档中的注释:

UIPopoverController 类用于管理弹出框中内容的呈现。您使用弹出框来临时呈现信息。弹出框内容叠加在现有内容之上,背景自动变暗。弹出框一直可见,直到用户在弹出框窗口之外点击或您明确关闭它。 Popover 控制器专用于 iPad 设备。尝试在其他设备上创建一个会导致异常。

如果您想在点击按钮 2 时执行任何操作,最简单的方法是将按钮 2 移动到弹出框内容的顶部。这样,您可以在用户点击 Button 2 时显式关闭弹出框,并在那里执行您自己的自定义操作。

【讨论】:

以上是关于出现弹出框时 UI 没有响应的主要内容,如果未能解决你的问题,请参考以下文章

元素操作

显示弹出框时更改方向时应用程序崩溃。

模拟器:系统 UI 没有响应,可怕的应用程序故障

NSWindow 在关闭 NSPopover 后失去了第一响应者

单击外部弹出框时如何防止 UIPopoverPresentationController 被关闭?

当 UIViewController 显示弹出框时,更改 CALayer 颜色与 UIView tintColor 同步