2

我正在创建一个有两个窗口的应用程序,它的工作方式如下:当我单击按钮时,第二个窗口出现并接管屏幕。当我点击关闭按钮(在第二个窗口上)时,第二个窗口从屏幕上消失。

问题是这样的:当它显示第二个窗口时,我双击主页按钮退出应用程序,应用程序跳转到显示第一个窗口(原始窗口),然后我回到应用程序后,它仍然显示第一个窗口,但关键窗口是第二个窗口,所以所有的命中事件仍然转到第二个窗口。它使我的应用程序看起来冻结,除非我单击“关闭”按钮所在的位置,否则应用程序会恢复正常。

有没有人经历过这个?我无法弄清楚是什么造成了这个问题,它看起来像是系统切换了窗口。

并不是每次我进出应用程序时都会发生这种情况,它偶尔会发生。

4

3 回答 3

1

所以我没有弄清楚如何处理这个问题,但我有一个替代解决方案。即通过 secondWindow.hidden = NO; 显示第二个窗口 而不是 [secondWindow makeKeyAndVisible];

这样,它也将解决许多其他问题(例如将点击传递到第一个窗口时的关键窗口问题,或者有一个新窗口,例如出现警报视图或模式视图),因为它仍然让系统处理关键窗口分配任务,而不是抓住我们手中的控制权。

希望这也能帮助遇到同样问题的其他人。:)

于 2013-05-01T20:27:13.187 回答
0

您可以再试[currentWindow makeKeyAndVisible];一次,或者您可以更改您的设计并简单地使用模态视图控制器而不是一个全新的窗口

于 2013-01-28T19:49:39.817 回答
0

您可能还想查看 上的windowLevel属性UIWindow

级别是有序的,以便每个级别将其中的窗口分组在所有先前组中的窗口之前。例如,警报窗口出现在所有正常级别窗口的前面。当一个窗口进入一个新的层级时,它会排在该层级的所有对等体前面。有关可能值的列表,请参阅“UIWindowLevel”。默认值为0.0

我有一个应用程序,它使用两个窗口来显示一个漂浮在视频播放器上方的透明窗口。警报视图使用提升的窗口级别来展示自己,所以我将背景窗口的级别设置为 -1.0,活动窗口的级别设置为 0.0。

于 2013-05-01T20:42:27.493 回答