【一个iOS官方文档错误】关于keyWindow是否可以接受触摸事件?
【一个iOS文档错误】关于keyWindow是否可以接受触摸事件?
关于keyWindow,官方文档有一个解释: 同一时间只有一个window可以成为keyWindow,keyWindow可以接受键盘和非触摸事件,(iOS6遵守此行为,但是iOS7和iOS8在模拟上没有遵守此行为)
原文如下
The key window is the one that is designated to receive keyboard and other non-touch related events. Only one window at a time may be the key window.
截图如下
先说结论,稍后验证:
在iOS6以前的条件下, 文档是正确的。 但是在iOS7和iOS8上经过验证:keyWindow是可以接受触摸事件的。 推测是Apple修改了这个功能,但是没有更新文档导致的。
具体证明过程见下:
新建一个自定义的UIWindow:MyWindow,并将该MyWindow设置为keyWindow,在MyWindow中添加如下代码:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { NSLog(@"别摸我"); }
点击屏幕后,可以打印。得出结论:在iOS7和iOS8上:keyWindow是可以接受触摸事件的。
注意: 在将MyWindow设置为keyWindow时记得,设置MyWindow的背景颜色,如果不设置,是不能够打印的!因为UIView的alpha(透明度)是零的话,是不能响应任何交互的。
作者:
出处:http://www.cnblogs.com/ChenYilong/(点击RSS订阅)
本文版权归作者和博客园共有,欢迎转载,
但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。