在做项目使用textfield的时候,可能是比较常见的账号密码输入,有可能需要自定义左右按钮,有可能需要处理输入的各种情况,在使用使用具体的语法可能会不太记得,在这里我给大家总结下UITextField的常用语法,基本上已经覆盖全面,如果有什么要补充的可以给我留言,我及时修改.
1.初始化textfield并设置位置及大小
UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)];
2.设置边框样式,只有设置了才会显示边框样式
text.borderStyle = UITextBorderStyleRoundedRect;
typedef enum {
UITextBorderStyleNone, (无样式)
UITextBorderStyleLine,(线条)
UITextBorderStyleBezel,(线框)
UITextBorderStyleRoundedRect(圆角)
} UITextBorderStyle;
3.设置输入框的背景颜色,此时设置为白色 如果使用了自定义的背景图片边框会被忽略掉
text.backgroundColor = [UIColor whiteColor];
4.设置背景
text.background = [UIImage imageNamed:@"dd.png"];
5.设置不可用背景
text.disabledBackground = [UIImage imageNamed:@"cc.png"];
6.当输入框没有内容时,水印提示 提示内容为password
text.placeholder = @"password";
7.设置输入框内容的字体样式和大小
text.font = [UIFont fontWithName:@"Arial" size:20.0f]; //设置字体样式
text.font = [[UIFont] fontWithSize: 15] //设置字体大小
text.textColor = [UIColor redColor]; //设置字体颜色
8.输入框中是否有个删除的 X 号,在什么时候显示,用于一次性删除输入框中的内容
text.clearButtonMode = UITextFieldViewModeAlways;
typedef enum {
UITextFieldViewModeNever, //永不出现
UITextFieldViewModeWhileEditing, //编辑时出现
UITextFieldViewModeUnlessEditing,//除了编辑外都出现
UITextFieldViewModeAlways //一直出现
} UITextFieldViewMode;
9.输入框中一开始就有的文字
text.text = @"一开始就在输入框的文字";
10.密文输入
text.secureTextEntry = YES;
11.是否纠错
text.autocorrectionType = UITextAutocorrectionTypeNo;
typedef enum {
UITextAutocorrectionTypeDefault,默认
UITextAutocorrectionTypeNo,不自动纠错
UITextAutocorrectionTypeYes,自动纠错
} UITextAutocorrectionType;
12.再次编辑就清空之前内容
text.clearsOnBeginEditing = YES;
13.内容对齐方式
text.textAlignment = UITextAlignmentLeft;
//内容的垂直对齐方式UITextField继承自UIControl,此类中有一个属性contentVerticalAlignment
text.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
14.自适应文本窗口大小.默认是保持原来大小,而让长文本滚动
textFied.adjustsFontSizeToFitWidth = YES;
text.minimumFontSize = 20; //设置自动缩小显示的最小字体大小
15.设置键盘的样式
text.keyboardType = UIKeyboardTypeNumberPad;
typedef enum {
UIKeyboardTypeDefault,默认键盘,支持所有字符
UIKeyboardTypeASCIICapable,支持ASCII的默认键盘
UIKeyboardTypeNumbersAndPunctuation,标准电话键盘,支持+*#字符
UIKeyboardTypeURL, URL键盘,支持.com按钮只支持URL字符
UIKeyboardTypeNumberPad,数字键盘
UIKeyboardTypePhonePad,电话键盘
UIKeyboardTypeNamePhonePad,电话键盘,也支持输入人名
UIKeyboardTypeEmailAddress,用于输入电子邮件地址的键盘
UIKeyboardTypeDecimalPad,数字键盘有数字和小数点
UIKeyboardTypeTwitter,优化的键盘,方便输入@、#字符
UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable,
} UIKeyboardType;
16.首字母是否大写
text.autocapitalizationType = UITextAutocapitalizationTypeNone;
typedef enum {
UITextAutocapitalizationTypeNone,不自动大写
UITextAutocapitalizationTypeWords,单词首字母大写
UITextAutocapitalizationTypeSentences,句子的首字母大写
UITextAutocapitalizationTypeAllCharacters,所有字母都大写
} UITextAutocapitalizationType;
17.return键样式
text.returnKeyType =UIReturnKeyDone;
typedef enum {
UIReturnKeyDefault,默认灰色按钮,标有Return
UIReturnKeyGo,标有Go的蓝色按钮
UIReturnKeyGoogle,标有Google的蓝色按钮,用语搜索
UIReturnKeyJoin,标有Join的蓝色按钮
UIReturnKeyNext,标有Next的蓝色按钮
UIReturnKeyRoute,标有Route的蓝色按钮
UIReturnKeySearch,标有Search的蓝色按钮
UIReturnKeySend,标有Send的蓝色按钮
UIReturnKeyYahoo,标有Yahoo的蓝色按钮
UIReturnKeyYahoo,标有Yahoo的蓝色按钮
UIReturnKeyEmergencyCall,紧急呼叫按钮
} UIReturnKeyType;
18.键盘外观
textView.keyboardAppearance = UIKeyboardAppearanceDefault;
typedef enum {
UIKeyboardAppearanceDefault,默认外观,浅灰色
UIKeyboardAppearanceAlert,深灰石墨色
} UIReturnKeyType;
19.设置代理 用于实现协议
text.delegate = self;
20.把textfield加到视图中
[self.view addSubview:text];
21.右侧添加自定义视图
//最右侧加图片是以下代码 左侧类似
UIImageView *image=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"right.png"]];
text.rightView=image;
text.rightViewMode = UITextFieldViewModeAlways; //右侧视图什么时候出现 这个是必须的,否则永远不会出现
typedef enum {
UITextFieldViewModeNever,
UITextFieldViewModeWhileEditing,
UITextFieldViewModeUnlessEditing,
UITextFieldViewModeAlways
} UITextFieldViewMode;
22.收回键盘
text. resignFirstResponder (常用)
23.重写绘制行为
除了UITextField对象的风格选项,你还可以定制化UITextField对象,为他添加许多不同的重写方法,来改变文本字段的显示行为。这些方法都会返回一个CGRect结构,制定了文本字段每个部件的边界范围。以下方法都可以重写。
– textRectForBounds: //重写来重置文字区域
– drawTextInRect: //改变绘文字属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了.
– placeholderRectForBounds: //重写来重置占位符区域
– drawPlaceholderInRect: //重写改变绘制占位符属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了.
– borderRectForBounds: //重写来重置边缘区域
– editingRectForBounds: //重写来重置编辑区域
– clearButtonRectForBounds: //重写来重置clearButton位置,改变size可能导致button的图片失真
– leftViewRectForBounds:
– rightViewRectForBounds:
24.delegate
//1.是否应该开始编辑 ,这里处理特殊情况下的不可编辑
//2.开始编辑,这时候可以进行重新请求数据等操作
//3.编辑过程,在这里可以进行输入内容限制输入,如限制字数 特殊字符等操作
//4.是否可以点击return按钮,这里可进行例如字数和规则等不符合时不可点击等操作
//5.是否应该结束编辑,这个用的不多
//6.已经结束编辑,这时可以把textfield值传递,因为这时候是最终的值,或者进行编辑结束的具体操作