iOS开发基础 当用户触摸屏幕上某点之后系统做了什么?

来源:互联网 发布:java 访问 动态链接库 编辑:程序博客网 时间:2024/06/09 13:19

首先,开启了查找hit-view的过程,根据触点的坐标,视图给直接子视图发hitTest消息,询问该点是否在其中,子视图发现如果点不在其中,则返回nil,如果发现点在其中,则该子视图再继续给他的所有直接子视图发hitTest消息,层层深入后,直到某一个视图不再具有子视图,但是点在它内部,则它将自己返回,于是就找到了hitView

然后,系统开始提供响应,如果该视图有响应,则执行响应代码,如果没有提供响应,则将事件传递给父视图甚至于控制器,一直到代理,如果这个链条中都没有提供响应,则该事件被抛弃

但是,如果这次触摸的点在文本框中,hitView为UITextField类型的,则不会再去一层层的找响应,而是直接让文本框成为了第一响应者,window检测到第一响应者类型是文本框时,自动弹出键盘

所以,如果想关闭键盘,让文本框放弃第一响应者身份即可

0 0
原创粉丝点击