我正在创建一个有两个窗口的应用程序,它的工作方式如下:当我点击按钮时,第二个窗口显示并接管屏幕。当我点击关闭按钮(在第二个窗口上)时,第二个窗口从屏幕上消失。
问题是这样的: 当它显示第二个窗口时,我双击主页按钮退出应用程序,应用程序跳转显示第一个窗口(原始窗口),然后在我回到应用程序后,它仍然显示第一个窗口,但关键窗口是第二个,因此所有命中事件仍然转到第二个窗口。它使我的应用程序看起来冻结,除非我点击“关闭”按钮的位置,应用程序恢复正常。
有没有人经历过这个?我无法弄清楚是什么造成了这个问题,它看起来像系统切换窗口。
每次进出应用程序时都不会发生这种情况,偶尔会发生这种情况。
答案 0 :(得分:1)
所以我没有弄清楚如何解决这个问题,但我有另一种解决方案。那是通过secondWindow.hidden = NO显示第二个窗口;而不是[secondWindow makeKeyAndVisible];
通过这种方式,它也可以解决许多其他问题(比如将命中传递给第一个窗口时出现关键窗口问题,或者出现一个新窗口,如警报视图或模态视图),因为它仍然让系统处理关键窗口分配任务而不是抓住我们手中的控件。
希望这也能帮助遇到同样问题的其他人。 :)
答案 1 :(得分:0)
您可以再次尝试[currentWindow makeKeyAndVisible];
,也可以更改设计,只需使用模态视图控制器而不是全新窗口
答案 2 :(得分:0)
您可能还想查看windowLevel
上的UIWindow
媒体资源。
对级别进行排序,以便每个级别将其中的窗口分组到所有前面组中的窗口之前。例如,警报窗口出现在所有正常级别窗口的前面。当一个窗口进入一个新的级别时,它会在该级别的所有同级之前进行排序。有关可能值的列表,请参阅“UIWindowLevel”。默认值为
0.0
。
我有一个应用程序,使用两个窗口显示浮动在视频播放器上方的透明窗口。警报视图使用提升的窗口级别来呈现自己,因此我将使背景窗口的级别为-1.0,活动窗口的级别为0.0。