有人能帮我理解以下两行之间的区别吗
[UIApplication.sharedApplication.delegate.window addSubview:myView];
[UIApplication.sharedApplication.keyWindow addSubview:myView];
有人能帮我理解以下两行之间的区别吗
[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