UITextField 单行文本框
核心属性:
text属性(NSString)获取用户的输入
NSLog(@"%@",self.textField.text);
关闭键盘
弹起键盘的原因:因为文本框成为了第一响应者
当用户触摸屏幕上某点之后系统做了什么?
首先,开启了查找hit-view的过程,根据触点的坐标,视图给直接子视图发hitTest消息,询问该点是否在其中,子视图发现如果点不在其中,则返回nil,如果发现点在其中,则该子视图再继续给他的所有直接子视图发hitTest消息,层层深入后,直到某一个视图不再具有子视图,但是点在它内部,则它将自己返回,于是就找到了hitView
然后,系统开始提供响应,如果该视图有响应,则执行响应代码,如果没有提供响应,则将事件传递给父视图甚至于控制器,一直到代理,如果这个链条中都没有提供响应,则该事件被抛弃
但是,如果这次触摸的点在文本框中,hitView为UITextField类型的,则不会再去一层层的找响应,而是直接让文本框成为了第一响应者,window检测到第一响应者类型是文本框时,自动弹出键盘
所以,如果想关闭键盘,让文本框放弃第一响应者身份即可
成为第一响应者(弹键盘)
[textField becomeFirstResponder] ;
释放第一响应者(关键盘)
[textField resignFirstResponder];
其它更方便关闭键盘的方式
前提:当界面上包含很多文本框时,一个一个的释放第一响应者身份比较麻烦
解决方法:设置文本框的父视图结束编辑状态即可
[view endEditing:YES];
什么时候关键盘?
时机一:点击空白处
重写控制器的touchesBegan方法即可
//关键盘的时机:触摸空白处(触摸的是控制器的view)
- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent *)event
{
[self.view endEditing:YES];
}
时机二:点击键盘的右下角
选中textField,连线一个方法,其中,Events参数一定要选择“Did End On Exit”即可,如图:
附模拟器Simulator快捷键:
调整模拟器大小 commond + 1 或2或3或4
模拟器水平或竖直 commond + ⬅️ 或 common + ➡️
虚拟机没有home键 只能 commond shif h
Option+Shift 可以在模拟器中调出双指拖动效果
Option 可以在模拟器中调出双指放大缩小效果
command+shift+H按两下 关闭程序
还有关于模拟器键盘快捷键:如下图
模拟器输入中文方法:
Xcode 菜单项 --> Product --> Scheme --> Edit Scheme --> Run --> Option --> Application Region 设置为 『中国』
重新运行程序,如下图所示就可以切换输入法了
屏幕的大小:
iphone 4/4s 尺寸:3.5英寸 实际的点(大小):320*480 分辨率:640*960
iphone 5/5s 尺寸:4.0英寸 实际的点:320*568 分辨率:640*1136
iphone6 尺寸:4.7 实际屏幕的点:(375*667) 分辨率:750*1334
iphone Plus 尺寸:5.5 实际:(540*960) 分辨率:1080*1920
网友评论