OGeek|极客世界-中国程序员成长平台

标题: ios - 多个 UIWindows 和触摸事件 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 12:30
标题: ios - 多个 UIWindows 和触摸事件

我创建了第二个窗口并将其添加到默认窗口之上:

[topWindow makeKeyAndVisible];
topWindow.hidden = NO;

它可以工作,但我的顶部窗口阻止了对应用程序默认窗口的访问。我想知道如果在屏幕给定位置的顶部窗口中没有元素(例如按钮),我们是否可以在下面访问默认窗口的元素。

我希望这是可以理解的。 对不起我的英语不好。 提前感谢您的帮助。



Best Answer-推荐答案


I have created a second window and add it on top

所以,我认为通常的期望是 iOS 应用中每个屏幕只有一个窗口。 The docs seem to imply this :

Every app has one window that displays the app’s user interface on an iOS-based device display. If an external display is connected to the device, an app can create a second window to present content on that display as well.

iOS 可能只是假设每个屏幕只有一个窗口,因此 hit-testing process只考虑一个窗口,可能是关键窗口。由于您将第二个窗口设置为关键窗口,我建议您在创建第二个窗口后创建第一个窗口键,看看是否会改变。如果第一个窗口随后收到触摸而第二个窗口没有,这并不奇怪。如果你发现是这种情况,你可以继承 UIWindow,覆盖 -hitTest:withEvent: 如果没有找到命中 View ,则将事件传递给其他窗口,然后使用它两个窗口的子类。

否则,如果您无法使其正常工作,请考虑返回单个窗口并改用不同的 View 。您的问题有点类似于 Make this view appear in every view, inside the app , 和 my suggestion在那里创建自己的容器 View Controller 可能会对您有所帮助。

关于ios - 多个 UIWindows 和触摸事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17583795/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4