有人能帮我理解以下两行之间的区别吗

[UIApplication.sharedApplication.delegate.window addSubview:myView];
[UIApplication.sharedApplication.keyWindow addSubview:myView];

推荐答案

它们在iOS上可能是一样的.当它们不同时,通常您会显示除应用程序代理的主窗口之外的另一个窗口.你的应用程序可以有许多窗口,但只有keyWindow是屏幕上可见的窗口,可以接收事件(例如,当显示并接收事件时,可以是UIAlert,它是keywindow).参考:https://developer.apple.com/library/content/documentation/WindowsViews/Conceptual/WindowAndScreenGuide/WindowScreenRolesinApp/WindowScreenRolesinApp.html

从文件中:

  • UIApplication.sharedApplication.delegate.window美元:

演示故事板时要使用的窗口.此属性包含

i、 这是你AppDelegate.h文件中的属性window.

  • UIApplication.sharedApplication.keyWindow美元:

此属性保存windows数组中的UIWindow对象,该对象是

在iOS上,你可以在AppDelegate.m内部调用makeKeyAndVisible

application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

您将创建的appDelegate窗口设置为keyWindow.通常,银行应用程序会在应用程序放在后台时切换关键窗口,以保护用户的敏感信息(当双击home(主页)按钮时),并在应用程序放在前台时切换回主代理窗口

This answer is in collaboration with: @SipkeSchoorstra, @D-Mx and @andyDarwin

Objective-c相关问答推荐

为何在Objective-C中,使用self.propName赋值会导致崩溃而使用_ivarName则不会?

iOS9 - 这个应用程序正在从后台线程修改自动布局引擎 - 在哪里?

iOS 应用 Display Recorder 如何在不使用私有 API 的情况下录制屏幕?

静态和动态单元格的 UITableView 混合?

NSFileManager 唯一的文件名

如何在 XCode 4 中创建 dSYM 文件?

切换隐私设置将杀死应用程序

将子视图添加到 UIButton

MKMapView MKPointAnnotation 点击​​事件

UIWebView 不会zoom 内容以适应

如何删除应用程序指定目录中的所有文件?

Modal segue,导航栏消失

自定义 colored颜色 我的 UIActivityIndi​​catorView

嵌入自定义容器视图控制器时,内容位于导航栏下方.

如何修复UIPopoverController 已弃用警告?

iPhone UILabel 文字软阴影

如何为 iPhone 6/7 自定义边到边图像指定尺寸?

如何判断 WkWebView 是否在 Objective-C 中完成加载?

如何定义 UIColor 的常量值?

如何调整 UIToolBar 左右内边距