【发布时间】:2017-10-27 12:35:37
【问题描述】:
我在面试中被问过很多次这个问题,搜索了每个地方都没有得到任何正确的答案。所以最后在这里发布这个问题。
【问题讨论】:
-
是的,它可以有多个窗口;但一个只能同时是 key。您对使用多个窗口有什么计划?
我在面试中被问过很多次这个问题,搜索了每个地方都没有得到任何正确的答案。所以最后在这里发布这个问题。
【问题讨论】:
你可以通过这个。
是的,您可以有多个窗口。关键窗口是接收用户输入的窗口。
从 Rob 的回答开始,我玩了一会儿,想为其他试图获取有关此主题的信息的人写一些笔记:
【讨论】:
一般一个应用程序只需要1个UIWindow,但还是有一些场景需要在一个应用程序中使用多个UIWindow。
例如,您希望在系统 AlertViews 的顶部显示一个视图,或者可以使用默认键盘。
UIWindows 是特殊的 UIView,其显示顺序由 .windowLevel 属性控制。
您不需要添加新的 UIWindow 作为任何视图的子视图。您可以简单地创建一个新的 UIWindow 并调用窗口 setHidden:NO 或窗口 makeKeyAndVisible 取决于您给它的级别。
定义了三个默认的窗口枚举级别:
【讨论】:
当然它可以有多个窗口。只是,一次只能显示一个,那就是keyWindow。您可以将多个窗口存储在数组或其他形式中,并在您想要显示它们时将它们设为keyWindow。
是的,阅读@Mannopson 建议的文档,它非常有用。
【讨论】:
keywindow 是接收非触摸事件的那个,例如键盘。