TextField相关基础用法

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值