程序创建时的顺序
应用程序启动之后,先创建Application,再创建它的代理,之后创建UIwindow。
UIWindow->UIViewController->UIView
UIWindow的两个主要作用
1.作为UIView的最顶层容器,包含应用显示所需要的所有UIView.
2.传递触摸消息和键盘事件给UIView.
为UIWindow增加UIView
1.通过addSubView方法,因为UIWindow是UIView的子类,所以可以用addSubView的方法给自己增加子UIView.
2.通过设置起特有的rootViewController属性.通过设置这个属性为要添加的view对应的viewController,UIWindow会自动将这个UIViewController的view添加到当前的UIWindow,同时负责和维护ViewController和View的生命周期.
通常在一个程序中只会有一个UIWindow,但有时我们调用系统的控件(例如UIAlertView)时,为了保证UIAlertView在所有界面之上,会临时建立一个UIWindow,通过将其UIWindow的UIWindowLevel设置的更高,保证它在所有界面之上.
UIWindow的UIWindowLevel这个属性定义了UIWindow的层级.
键盘事件
在创建带有键盘应用的UIWindow时,要注意处理键盘事件,需要合理的将其设置为keyWindow.keyWindow是被系统设计用来接收键盘事件和其他非触摸事件的UIWindow.我们通过
makeKeyWindow 和resignKeyWindow方法
将自己创建的UIWindow设置为keyWindow.