iOS中UITextField使用全面解析
iOS中UITextField使⽤全⾯解析//初始化textfield并设置位置及⼤⼩
UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)];
//设置边框样式,只有设置了才会显⽰边框样式 
text.borderStyle = UITextBorderStyleRoundedRect;
 typedef enum {
UITextBorderStyleNone,
UITextBorderStyleLine,
UITextBorderStyleBezel,
UITextBorderStyleRoundedRect
} UITextBorderStyle;
//设置输⼊框的背景颜⾊,此时设置为⽩⾊如果使⽤了⾃定义的背景图⽚边框会被忽略掉 
  text.backgroundColor = [UIColor whiteColor];
//设置背景
text.background = [UIImage p_w_picpathNamed:@"dd.png"];
//设置背景
text.disabledBackground = [UIImage p_w_picpathNamed:@"cc.png"];
//当输⼊框没有内容时,⽔印提⽰提⽰内容为password
text.placeholder = @"password";
//设置输⼊框内容的字体样式和⼤⼩
text.font = [UIFont fontWithName:@"Arial" size:20.0f];
//设置字体颜⾊
/
/输⼊框中是否有个叉号,在什么时候显⽰,⽤于⼀次性删除输⼊框中的内容
text.clearButtonMode = UITextFieldViewModeAlways;
typedef enum {
UITextFieldViewModeNever, 重不出现
UITextFieldViewModeWhileEditing, 编辑时出现
UITextFieldViewModeUnlessEditing, 除了编辑外都出现
UITextFieldViewModeAlways  ⼀直出现
} UITextFieldViewMode;
//输⼊框中⼀开始就有的⽂字
< = @"⼀开始就在输⼊框的⽂字";
//每输⼊⼀个字符就变成点⽤语密码输⼊
text.secureTextEntry = YES;
//是否纠错
text.autocorrectionType = UITextAutocorrectionTypeNo;
typedef enum {
UITextAutocorrectionTypeDefault, 默认
UITextAutocorrectionTypeNo,  不⾃动纠错
UITextAutocorrectionTypeYes, ⾃动纠错
} UITextAutocorrectionType;
办公室管理
//再次编辑就清空
高考报志愿指南text.clearsOnBeginEditing = YES;
//内容对齐⽅式
//内容的垂直对齐⽅式  UITextField继承⾃UIControl,此类中有⼀个属性contentVerticalAlignment  tVerticalAlignment = UIControlContentVerticalAlignmentCenter;
//设置为YES时⽂本会⾃动缩⼩以适应⽂本窗⼝⼤⼩.默认是保持原来⼤⼩,⽽让长⽂本滚动 
textFied.adjustsFontSizeToFitWidth = YES;
//设置⾃动缩⼩显⽰的最⼩字体⼤⼩
text.minimumFontSize = 20;
//设置键盘的样式
text.keyboardType = UIKeyboardTypeNumberPad;
typedef enum {
UIKeyboardTypeDefault, 默认键盘,⽀持所有字符UIKeyboardTypeASCIICapable, ⽀持ASCII的默认键盘UIKeyboardTypeNumbersAndPunctuation, 标准电话键盘,⽀持+*#字符UIKeyboardType
URL, URL键盘,⽀持按钮只⽀持URL字符UIKeyboardTypeNumberPad, 数字键盘
UIKeyboardTypePhonePad,  电话键盘
UIKeyboardTypeNamePhonePad,  电话键盘,也⽀持输⼊⼈名UIKeyboardTypeEmailAddress,  ⽤于输⼊电⼦邮件地址的键盘UIKeyboardTypeDecimalPad, 数字键盘有数字和⼩数点
UIKeyboardTypeTwitter, 优化的键盘,⽅便输⼊@、#字符
UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable,
} UIKeyboardType;
//⾸字母是否⼤写
text.autocapitalizationType = UITextAutocapitalizationTypeNone;
typedef enum {
UITextAutocapitalizationTypeNone, 不⾃动⼤写UITextAutocapitalizationTypeWords, 单词⾸字母⼤写
重阳节祝福语8字以内UITextAutocapitalizationTypeSentences, 句⼦的⾸字母⼤写UITextAutocapitalizationTypeAllCharacters, 所有字母都⼤写
} UITextAutocapitalizationType;
//return键变成什么键
typedef enum {
UIReturnKeyDefault, 默认灰⾊按钮,标有Return
UIReturnKeyGo, 标有Go的蓝⾊按钮
UIReturnKeyGoogle,标有Google的蓝⾊按钮,⽤语搜索
UIReturnKeyJoin,标有Join的蓝⾊按钮
UIReturnKeyNext,标有Next的蓝⾊按钮
UIReturnKeyRoute,标有Route的蓝⾊按钮
UIReturnKeySearch,标有Search的蓝⾊按钮
UIReturnKeySend,标有Send的蓝⾊按钮
UIReturnKeyYahoo,标有Yahoo的蓝⾊按钮
UIReturnKeyYahoo,标有Yahoo的蓝⾊按钮
UIReturnKeyEmergencyCall, 紧急呼叫按钮
} UIReturnKeyType;
//键盘外观
textView.keyboardAppearance=UIKeyboardAppearanceDefault;
typedef enum {
UIKeyboardAppearanceDefault,默认外观,浅灰⾊
UIKeyboardAppearanceAlert,  深灰⽯墨⾊
} UIReturnKeyType;
//设置代理⽤于实现协议
text.delegate = self;
//把textfield加到视图中
[self.window addSubview:text];
//最右侧加图⽚是以下代码 左侧类似
UIImageView *p_w_picpath=[[UIImageView alloc] initWithImage:[UIImage p_w_picpathNamed:@"right.png"]]; text.rightView=p_w_picpath;
text.rightViewMode = UITextFieldViewModeAlways;
typedef enum {
UITextFieldViewModeNever,
UITextFieldViewModeWhileEditing,
UITextFieldViewModeUnlessEditing,
UITextFieldViewModeAlways
UITextFieldViewModeAlways
} UITextFieldViewMode;
//按return键键盘往下收  becomeFirstResponder
类要采⽤UITextFieldDelegate协议
text.delegate = self; 声明text的代理是我,我会去实现把键盘往下收的⽅法这个⽅法在UITextFieldDelegate⾥所以我们要采⽤UITextFieldDelegate这个协议
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[text resignFirstResponder]; //主要是[receiver resignFirstResponder]在哪调⽤就能把receiver对应的键盘往下收
return YES;
}
重写绘制⾏为
除了UITextField对象的风格选项,你还可以定制化UITextField对象,为他添加许多不同的重写⽅法,来改变⽂本字段的显⽰⾏为。这些⽅法都会返回⼀个CGRect结构,制定了⽂– textRectForBounds: //重写来重置⽂字区域
– drawTextInRect: //改变绘⽂字属性.重写时调⽤super可以按默认图形属性绘制,若⾃⼰完全重写绘制函数,就不⽤调⽤super了.
– placeholderRectForBounds:  //重写来重置占位符区域
– drawPlaceholderInRect:  //重写改变绘制占位符属性.重写时调⽤super可以按默认图形属性绘制,若⾃⼰完全重写绘制函数,就不⽤调⽤super了.
– borderRectForBounds:  //重写来重置边缘区域
– editingRectForBounds:  //重写来重置编辑区域
– clearButtonRectForBounds:  //重写来重置clearButton位置,改变size可能导致button的图⽚失真
– leftViewRectForBounds:
– rightViewRectForBounds:
委托⽅法
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{ 
//返回⼀个BOOL值,指定是否循序⽂本字段开始编辑 
专业 排名return YES; 
} 
- (void)textFieldDidBeginEditing:(UITextField *)textField{ 
//开始编辑时触发,⽂本字段将成为first responder 
} 
福州三坊七巷-
(BOOL)textFieldShouldEndEditing:(UITextField *)textField{ 
//返回BOOL值,指定是否允许⽂本字段结束编辑,当编辑结束,⽂本字段会让出first responder 
  //要想在⽤户结束编辑时阻⽌⽂本字段消失,可以返回NO 
  //这对⼀些⽂本字段必须始终保持活跃状态的程序很有⽤,⽐如即时消息 
return NO; 
} 
- (BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ 
//当⽤户使⽤⾃动更正功能,把输⼊的⽂字修改为推荐的⽂字时,就会调⽤这个⽅法。 
//这对于想要加⼊撤销选项的应⽤程序特别有⽤ 
//可以跟踪字段内所做的最后⼀次修改,也可以对所有编辑做⽇志记录,⽤作审计⽤途。 
//要防⽌⽂字被改变可以返回NO 
//这个⽅法的参数中有⼀个NSRange对象,指明了被改变⽂字的位置,建议修改的⽂本也在其中 
return YES; 
} 
- (BOOL)textFieldShouldClear:(UITextField *)textField{ 
//返回⼀个BOOL值指明是否允许根据⽤户请求清除内容 
//可以设置在特定条件下才允许清除内容 
return YES; 
} 
-(BOOL)textFieldShouldReturn:(UITextField *)textField{ 
//返回⼀个BOOL值,指明是否允许在按下回车键时结束编辑 
//如果允许要调⽤resignFirstResponder ⽅法,这回导致结束编辑,⽽键盘会被收起[textField resignFirstResponder];
//查⼀下resign这个单词的意思就明⽩这个⽅法了 
return YES; 
} 
通知
UITextField派⽣⾃UIControl,所以UIControl类中的通知系统在⽂本字段中也可以使⽤。除了UIControl类的标准事件,你还可以使⽤下列UITextField类特有的事件UITextFieldTextDidBeginEditingNotification袁隆平的简短小故事
UITextFieldTextDidChangeNotification
UITextFieldTextDidEndEditingNotification
当⽂本字段退出编辑模式时触发。通知的object属性存储了最终⽂本。
因为⽂本字段要使⽤键盘输⼊⽂字,所以下⾯这些事件发⽣时,也会发送动作通知
UIKeyboardWillShowNotification  //键盘显⽰之前发送
UIKeyboardDidShowNotification   //键盘显⽰之后发送
UIKeyboardWillHideNotification  //键盘隐藏之前发送
UIKeyboardDidHideNotification   //键盘隐藏之后发送
![iOS中UITextField 使⽤全⾯解析1](upload-images.jianshu.io/upload_images/15646807-c8034f40e36ad64a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1
1、Text :设置⽂本框的默认⽂本。
2、Placeholder :可以在⽂本框中显⽰灰⾊的字,⽤于提⽰⽤户应该在这个⽂本框输⼊什么内容。当这个⽂本框中输⼊了数据时,⽤于提⽰的灰⾊的字将会⾃动消失。
3、Background :
4、Disabled :若选中此项,⽤户将不能更改⽂本框内容。
5、接下来是三个按钮,⽤来设置对齐⽅式。
6、Border Style :选择边界风格。
7、Clear Button :这是⼀个下拉菜单,你可以选择清除按钮什么时候出现,所谓清除按钮就是出⼀个现在⽂本框右边的⼩ X ,你可以有以下选择:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。