2

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

[topWindow makeKeyAndVisible];
topWindow.hidden = NO;

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

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

4

1 回答 1

1

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

所以,我认为通常的期望是 iOS 应用程序中每个屏幕只有一个窗口。文档似乎暗示了这一点

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

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

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

于 2013-07-11T15:12:42.313 回答