UIWindow介绍
- lUIWindow是一种特殊的UIView,通常在一个app中至少会有一个UIWindow
- lUIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow
- 一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow
- 添加UIView到UIWindow中两种常见方式:
- (void)addSubview:(UIView*)view;
直接将view添加到UIWindow中,但并不会理会view对应的UIViewController - @property(nonatomic,retain)UIViewController*rootViewController;
自动将rootViewController的view添加到UIWindow中,负责管理rootViewController的生命周期
- (void)addSubview:(UIView*)view;
- 常用方法
- (void)makeKeyWindow;
让当前UIWindow变成keyWindow(主窗口) - (void)makeKeyAndVisible;
让当前UIWindow变成keyWindow,并显示出来
- (void)makeKeyWindow;
UIWindow的获得
- [UIApplicationsharedApplication].windows
在本应用中打开的UIWindow列表,这样就可以接触应用中的任何一个UIView对象
(平时输入文字弹出的键盘,就处在一个新的UIWindow中) - [UIApplicationsharedApplication].keyWindow
用来接收键盘以及非触摸类的消息事件的UIWindow,而且程序中每个时刻只能有一个UIWindow是keyWindow。如果某个UIWindow内部的文本框不能输入文字,可能是因为这个UIWindow不是keyWindow - view.window
获得某个UIView所在的UIWindow
四大对象关系图
AAD3281D-5AEC-4AE4-818B-F1412D6A431E.png