makeKeyAndVisible & makeKeyWindow - iPhone 中的 uiwindow

作者:编程家 分类: ios 时间:2025-09-18

一篇关于 iPhone 中的 UIWindow 的文章。

---

在 iPhone 开发中,UIWindow 是一个非常重要的类。它是一个特殊的 UIView 子类,用于协调和管理应用程序的用户界面。UIWindow 对象充当了应用程序中的窗口,并且可以容纳其他 UIView 对象,例如视图控制器的视图层级结构。

在 iOS 应用程序中,通常会有一个主窗口(main window),它是应用程序中所有其他窗口的容器。主窗口通常是由 UIApplication 对象自动创建和管理的。通过 UIApplication 的 shared 属性,我们可以获取到应用程序的主窗口。

在创建一个 UIWindow 对象后,我们需要将其设置为应用程序的主窗口。这可以通过调用 makeKeyWindow 方法来实现。makeKeyWindow 方法会将指定的 UIWindow 对象设置为主窗口,并且将其显示在屏幕上。

下面是一个示例代码,展示了如何创建一个 UIWindow 对象,并将其设置为主窗口:

swift

let window = UIWindow(frame: UIScreen.main.bounds)

window.rootViewController = ViewController()

window.makeKeyAndVisible()

在上面的代码中,我们首先创建了一个 UIWindow 对象,并使用屏幕的边界作为窗口的大小。然后,我们将一个自定义的视图控制器(ViewController)设置为窗口的根视图控制器(rootViewController)。最后,我们调用了 makeKeyAndVisible 方法,将窗口设置为主窗口并显示在屏幕上。

除了将 UIWindow 对象设置为主窗口外,我们还可以使用 makeKeyAndVisible 方法将其他 UIWindow 对象显示在屏幕上。这个方法会将指定的窗口设置为关键窗口,并将其放置在其他窗口的上层。

下面是一个示例代码,展示了如何创建一个新的 UIWindow 对象,并使用 makeKeyAndVisible 方法将其显示在屏幕上:

swift

let newWindow = UIWindow(frame: CGRect(x: 0, y: 0, width: 200, height: 200))

newWindow.backgroundColor = .red

newWindow.makeKeyAndVisible()

在上面的代码中,我们创建了一个大小为 200x200 的新 UIWindow 对象,并将其背景颜色设置为红色。然后,我们调用了 makeKeyAndVisible 方法,将新窗口设置为关键窗口并显示在屏幕上。

使用 makeKeyAndVisible 和 makeKeyWindow 方法的注意事项

在使用 makeKeyAndVisible 和 makeKeyWindow 方法时,有一些需要注意的事项。首先,我们应该确保每个窗口对象只调用一次 makeKeyAndVisible 方法,否则可能会导致窗口显示异常。

其次,如果我们需要切换应用程序的主窗口,我们应该先调用 makeKeyWindow 方法将当前窗口设置为非关键窗口,然后再调用 makeKeyAndVisible 方法将新窗口设置为主窗口。

此外,如果我们在应用程序中使用了多个窗口,我们还需要考虑窗口的层级关系。通过设置窗口的 windowLevel 属性,我们可以控制窗口在屏幕上的显示顺序。较高的 windowLevel 值表示窗口在其他窗口之上。

UIWindow 是 iPhone 开发中非常重要的一个类,用于协调和管理应用程序的用户界面。通过 makeKeyAndVisible 和 makeKeyWindow 方法,我们可以将 UIWindow 对象设置为主窗口并显示在屏幕上。在使用这些方法时,需要注意调用顺序和窗口的层级关系,以确保窗口的显示正常。

希望本文对你理解 iPhone 中的 UIWindow 有所帮助,如果有任何疑问,请随时在评论区留言。