Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 多个UIWindows和触摸事件_Ios_Objective C_Uiwindow - Fatal编程技术网

Ios 多个UIWindows和触摸事件

Ios 多个UIWindows和触摸事件,ios,objective-c,uiwindow,Ios,Objective C,Uiwindow,我创建了第二个窗口,并将其添加到默认窗口的顶部: [topWindow makeKeyAndVisible]; topWindow.hidden = NO; 它可以工作,但我的顶部窗口阻止了对应用程序默认窗口的访问。我想知道,如果在屏幕的给定位置我的顶部窗口中没有元素(比如按钮),我们是否可以访问下面默认窗口的元素 我希望这是可以理解的。 对不起我的英语。 提前谢谢你的帮助 我已经创建了第二个窗口并将其添加到顶部 因此,我认为通常的预期是,在iOS应用程序中,每个屏幕只有一个窗口: 每个应用程

我创建了第二个窗口,并将其添加到默认窗口的顶部:

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

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

我已经创建了第二个窗口并将其添加到顶部

因此,我认为通常的预期是,在iOS应用程序中,每个屏幕只有一个窗口:

每个应用程序都有一个窗口,在基于iOS的设备显示器上显示应用程序的用户界面。如果外部显示器连接到设备,应用程序也可以创建第二个窗口来显示该显示器上的内容

iOS可能只是简单地假设每个屏幕只有一个窗口,因此只考虑一个窗口,可能是关键窗口。由于您正在将第二个窗口设置为关键点窗口,因此我建议在创建第二个窗口后设置第一个窗口关键点,看看这是否会改变情况。如果第一个窗口收到触摸,而第二个窗口没有,这并不奇怪。如果发现是这种情况,则可以将
UIWindow
子类化,覆盖
-hitTest:withEvent:
,以便在未找到命中视图的情况下将事件传递给其他窗口,然后将该子类用于两个窗口


否则,如果无法使其工作,请考虑返回单个窗口并使用不同的视图。您的问题与有些类似,创建自己的容器视图控制器可能会对您有所帮助。

为什么要使用两个窗口?iOS应用程序预计每个屏幕只有一个窗口。你能用一个视图来代替顶部窗口吗?它是在我的应用程序顶部有一个层,它不会干扰我的应用程序的主窗口。奇怪的是,你的评论会以法语出现在我的收件箱中。你是先用法语写然后再编辑的吗?只是想知道。是的,我在谷歌翻译中复制粘贴了一个错误来检查我的英语。但通常我已经纠正了我的错误。很抱歉我写道:“在我的应用程序顶部有一个层,它不会干扰我的应用程序的主窗口”