TextField相关基础用法

来源:互联网 发布:淘宝客服结束语大全 编辑:程序博客网 时间:2024/05/16 06:37

TextField在日常工程中使用广泛,基本上每个App都会用到,但对于初学者来说,定制起来可能会走很多弯路。例如基础属性,相关情况下的键盘模式,或者是和键盘的相对位置等等。

我在日常使用中也走了不少弯路,最重要的是定制键盘样式和监听键盘高度等等,但是经过在网上收集一些资料和自己翻阅官方文档,最后还是找到了不少可行方法,以下是关于TextField的一些相关方法。我会另外再写一篇对于键盘的博客。

UITextField继承于UIControl,而UIControl继承于UIView,所以UITextField可以使用UIView的方法进行初始化。

创建TextField

UITextField * textField = [[UITextField alloc]initWithFrame:CGRectMake(60, 100,200, 40)];   
TextFiled背景色
textField.backgroundColor = [UIColor whiteColor];
设置背景图片
textField.background = [UIImage imageNamed:@"xxx.PNG"];
设置边框样式
textField.borderStyle = UITextBorderStyleRoundedRect;//圆角矩形UITextBorderStyleNone              //没有边框UITextBorderStyleLine              //线状边框UITextBorderStyleBezel             //直角立体矩形(底座)UITextBorderStyleRoundedRect       //圆角矩形

关于文字

设置初始文字
textField.text = @"初始文字";
设置文字颜色
textField.textColor = [UIColor blueColor];
设置文字的对齐方式
textField.textAlignment = NSTextAlignmentLeft;
设置文字的垂直对齐方式
textField.contentVerticalAlignment = UIControlContentVerticalAlignmentBottom;
设置文字的字体
textField.font = [UIFont systemFontOfSize:20];
设置占位符
textField.placeholder = @"占位符";
设置密文显示
textField.secureTextEntry = NO;
设置clearButton模式
textField.clearButtonMode = UITextFieldViewModeAlways;UITextFieldViewModeNever          //永不显示UITextFieldViewModeWhileEditing   //当编辑时UITextFieldViewModeUnlessEditing  //除了编辑时UITextFieldViewModeAlways         //永远显示
设置左右视图的显示模式
textField.leftViewMode = UITextFieldViewModeAlways;textField.rightViewMode = UITextFieldViewModeAlways;

右视图设置后,会覆盖掉clearButton

设置文字自适应宽度
textField.adjustsFontSizeToFitWidth = YES;
设置最小字体
textField.minimumFontSize = 10;
自动纠错
textField.autocorrectionType = UITextAutocorrectionTypeNo;
判断textField是否处于编辑模式
BOOL ret = textField.isEditing;  
设置进入编辑状态,立即清空文字
textField.clearsOnBeginEditing = YES;

代理方法

TextField的协议是UIApplicationDelegate,至于怎么添加,大家都懂得。
协议方法众多,我这里只介绍几个大家可能常用的。

当textField将要开始被编辑,会委托代理调用这个方法
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField//返回YES允许编辑,返回NO不许编辑
当textField已经开始被编辑,会委托代理调用这个方法
- (void)textFieldDidBeginEditing:(UITextField *)textField
当textField将要结束被编辑,会委托代理调用这个方法
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField//返回YES允许结束,返回NO,不许结束
当textField已经结束被编辑,会委托代理调用这个方法
- (void)textFieldDidEndEditing:(UITextField *)textField
当keyBoard上return键被点击,委托代理调用这个方法
- (BOOL)textFieldShouldReturn:(UITextField *)textField//返回值YES,NO没区别,似乎是系统会获得这个返回值
当textField中文字发生改变,调用这个方法
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
0 0