iOS的key window能够响应键盘和非触摸事件的那个非触摸事件是什么?
主窗口(key?window)接受特定事件 一个窗口当前能接受键盘和非触摸事件时,便被认为是主窗口。而触摸事件则被投递到触摸发生的窗口,没有相应坐标值的事件被投递到主窗口。同一时刻只有一个窗口是主窗口。 大部分时间内,应用窗口是主窗口。由于iOS使用单独的窗口来显示警告视图(alert?view)和输入附件视图(input?accessory?view),这些窗口也可以成为主窗口。例如,当一个讲稿视图或者输入附件视图有一个文本框,而用户当前正在这个文本框中输入,那么包含此输入视图的窗口便是主窗口。 绝大多数应用窗口处在同一等级 当你为应用创建一个新窗口时,UIVin...全部
主窗口(key?window)接受特定事件 一个窗口当前能接受键盘和非触摸事件时,便被认为是主窗口。而触摸事件则被投递到触摸发生的窗口,没有相应坐标值的事件被投递到主窗口。同一时刻只有一个窗口是主窗口。
大部分时间内,应用窗口是主窗口。由于iOS使用单独的窗口来显示警告视图(alert?view)和输入附件视图(input?accessory?view),这些窗口也可以成为主窗口。例如,当一个讲稿视图或者输入附件视图有一个文本框,而用户当前正在这个文本框中输入,那么包含此输入视图的窗口便是主窗口。
绝大多数应用窗口处在同一等级 当你为应用创建一个新窗口时,UIVindow类自动赋给它一个等级,称为正常窗口等级(normal?window?level),这个等级对显示应用相关内容的窗口是合适的。
这个等级,可以通过windowLevel属性来设置,它代表窗口相对其他窗口在z轴所处的位置。你可以使与应用相关的窗口在其他等级显示,但这不是必须的。 除了用于显示应用相关内容的窗口外,还有一些高等级的窗口,他们显示一些需要悬浮在应用内容之上的信息。
例如系统状态栏和警告等。 每个窗口与一个显示设备关联 UIWindow类的screen属相代表窗口当前用于显示的显示设备。这个属性包含一个屏幕对象,也就是UIScreen的一个实例,这个对象包含显示设备的信息,例如它的边框,模式,和亮度。
屏幕对象也包括一些通知用来监听显示设备的变动。例如你可以注册显示设备的连接或断开,或者显示设备的模式或者亮度改变的通知。 窗口通知帮助你监听变化 iOS定义了许多表明窗口或者屏幕对象变化的通知。
一般而言,这些通知对于支持外部显示器的应用是有帮助的。 除了表明何时键盘是可见的通知(例如UIKeyboardDidShowNotification),UIWindow还定义了以下通知: ·?UIWindowDidBecomeVisibleNotification ·?UIWindowDidBecomeHiddenNotification ·?UIWindowDidBecomeKeyNotification ·?UIWindowDidResignKeyNotification复制代码 每当应用窗口发生编程变化时,UIWindow通知就会被投递。
例如,当你的应用显示或者隐藏一个窗口时,UIWindowDidBecomeVisibleNotification和UIWindowDidBecomeHiddenNotification通知相应地就会被投递。
值得注意的是,当应用转移到后台时,这些通知不会被投递:即便应用转到后台时,窗口不会显示,窗口在应用的上下文中仍然被认为是可见的。 大多数应用不需要处理UIWindowDidBecomeVisibleNotification和UIWindowDidBecomeHiddenNotification通知,很少有应用拥有一个以上窗口。
UIWindowDidBecomeKeyNotification?和?UIWindowDidResignKeyNotification能帮助你跟踪应用窗口何时是主窗口,何时不是。当你通过显示一个输入配件视图来或者用户输入时,你也许需要知道一个窗口是不是主窗口。
窗口和屏幕支持少许其他任务 一般来说,除了需要支持外接显示器这种情况外,你很少需要访问应用的窗口和屏幕对象。当应用启动后,也就是窗口被创建,加载,以及设置后,只有少许事情需要由窗口处理。
·?使用窗口对象来转换点和矩形的坐标。例如,你有一个窗口坐标系中的值,,你可能想把它转换成一个特定视图坐标系中的值,然后使用。 ·?使用窗口的通知来跟踪窗口相关的变化。窗口在显示和隐藏以及成为或放弃主窗口状态时,都会生成通知。
你可以借助这些通知在应用的其他地方执行一些行动。 类似地,只有个别原因才需要访问屏幕对象。其中一个原因是你需要调节屏幕的亮度。例如,你可以使用brightness属性让用户可以调节iOS设备的屏幕的亮度。
你还可以通过wantsSoftwareDimming属性来表明应用需要将屏幕亮度调整到比中等亮度偏暗的级别。(需要注意的是,打开wantsSoftwareDimming可能会对性能有影响,因为这种昏暗是通过软件来实现的。
)。收起