iOS UI基础控件之UITextField

UITextField 是一个用来处理文本输入和现实的控件,在我们的开发当中也是经常被用到。

下面我们一起来学习UITextField吧!!!

基本属性


对象创建以及文本的显示
<pre>
UITextField *textField = [[UITextField alloc]initWithFrame:CGRectMake(50, 300, 200, 50)];
[self.view addSubView:textField];
//设置显示文本
textField.text = @"点击试试";
//设置文本颜色
textField.textColor = [UIColor redColor];
//设置文本对齐方式
textField.textAlignment = NSTextAlignmentRight;
//设置字体
textField.font = [UIFont fontWithName:@"wawati sc" size:20];
</pre>

其他属性


设置TextField的边框

textField.borderStyle = UITextBorderStyleRoundedRect;

borderStyle 是一个枚举类型的属性, 默认是:UITextBorderStyleNone, 该枚举的所有成员如下:

  • 无边框

    UITextBorderStyleNone
  • 直线边框

    UITextBorderStyleLine
  • 凹边框

    UITextBorderStyleBezel
  • 圆角边框

    UITextBorderStyleRoundedRect

对于以上几种边框样式最好去一一试试,看看效果

设置TextField的占位字符

textField.placeholder = @"看看";

设置TextField的占位字符

在App中有很多情况需要让编辑框不能编辑,我们通过设置enabled来控件可不可以编辑

textField.enabled = YES;

设置TextField的编辑状态

在App中有很多情况需要让编辑框不能编辑,我们通过设置enabled来控件可不可以编辑

textField.enabled = YES;

设置编辑框中删除按钮的出现模式

我们在使用App时经常会看到当我们的编辑框中有文本的时候,边上会很出现一个删除的图标,当我们不需要框中的内容的时候直接点击按钮就可以把整个框中的内容删掉;在iOS中这个按钮是系统自带的,我们来设置下他的出现模式

textField.clearButtonMode = UITextFieldViewModeAlways;

clearButtonMode是一个枚举类型的属性,默认是:UITextFieldViewModeNever, 该类型的所有成员如下:

  • 没有删除按钮

    UITextFieldViewModeNever
  • 当编辑的时候出现删除按钮

    UITextFieldViewModeWhileEditing
  • 当不编辑的时候出现删除按钮

    UITextFieldViewModeUnlessEditing
  • 总是出现

    UITextFieldViewModeAlways

设置开始编辑时是否删除原有内容

有时候我们需要再次编辑时删除框中原有内容,如果每次都手动的删除原有内容特别麻烦,我们可以进行如下设置:

textField.clearsOnBeginEditing = YES;

设置为YES后,当再次点击编辑框时,会将上次的内容清空

设置编辑框中的内容密码显示

textField.secureTextEntry = YES;

设置键盘样式

textField.keyboardType = UIKeyboardTypeNamePhonePad;

键盘的样式非常多,大家可以查看我的iOS键盘样式详解

设置键盘上return键的类型

textField.returnKeyType = UIReturnKeySearch;

  • UIReturnKeyDefault,
  • UIReturnKeyGo,
  • UIReturnKeyGoogle,
  • UIReturnKeyJoin,
  • UIReturnKeyNext,
  • UIReturnKeyRoute,
  • UIReturnKeySearch,
  • UIReturnKeySend,
  • UIReturnKeyYahoo,
  • UIReturnKeyDone,
  • UIReturnKeyEmergencyCall,

以上样式,可以一一试试,只有查看了之后才能跟好的理解

自定义键盘辅助视图

在键盘的最上面有一个辅助视图,我们可以通过自定义这个辅助视图实现很多很灵活的功能,下面我举一个非常简单的例子:

<pre>
//自定义键盘辅助视图
UIView *subView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 80)];
subView.backgroundColor = [UIColor greenColor];
textField.inputAccessoryView = subView;
</pre>
先创建一个视图,然后赋值给inputAccessoryView属性就可以了,这样键盘上的辅助视图就是我们创建的绿色View了

自定义键盘

为了安全着想,现在越来越多的项目中都使用了自定义的键盘;在iOS中键盘的自定义相对来说比较简单,因为系统给我们提供了接口,我们只要自己创建一个键盘视图,然后覆盖当前编辑框的键盘视图就可以:

<pre>

//自定义键盘视图
UIView *redView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 100)];
redView.backgroundColor = [UIColor redColor];
textField.inputView = redView;

</pre>

添加编辑框的左/右边视图

编辑框的设计非常的灵活, 我们自己可以在编辑框的左边再添加一个自定义的视图;


先设置左视图出现的模式

textField.leftViewMode = UITextFieldViewModeAlways;

leftViewMode这也是一个枚举类型的属性,他的成员我就不一一列举了,大家可以自己去头文件中查看,他的枚举成员的大概和删除按钮出现的的意思一样

设置左边要出现的视图

<pre> //添加左视图
UIView *leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 50, 50)];
leftView.backgroundColor = [UIColor grayColor];
textField.leftView = leftView;
</pre>

textField_leftView

上面是添加左视图,其实添加右视图是一样的原理,只是设置的是右边两个相关的属性(rightViewModerightView)

编辑框的代理方法

既然编辑框是一个处理文本的控件,那免不了我们要和用户进行打交道;例如我们要在用户开始输入的、正在输入或者输入结束等等情况下进行一些特殊的处理;那么这些处理的话,编辑框本身并不知道我们具体要做什么处理,所以我们可以作编辑框的代理,让我们自己来做处理;

设置编辑框的代理

先遵守编辑框代理协议(UITextFieldDelegate),然后设置代理
textField.delegate = self;

实现代理方法

具体代理方法如下:

<pre>
// textField delegate
// return button Action
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
//textField:调用次方法的textField
NSLog(@"点击return 按钮时会执行的方法");
[textField resignFirstResponder]; //回收键盘
return YES;
}
// Had Begin Editing Action
-(void)textFieldDidBeginEditing:(UITextField *)textField
{
NSLog(@"已经开始编辑文本框时执行的方法%@", textField.text);
}
// Had End Editing Action
-(void)textFieldDidEndEditing:(UITextField *)textField
{
NSLog(@"已经结束编辑时执行的方法%@", textField.text);
}
// will begin Editing Action
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
NSLog(@"将要开始编辑时执行的方法%@", textField.text);
//系统是否响应这个动作
return YES;
}
// Will End Editing Action
-(BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
NSLog(@"将要结束编辑时执行的方法%@", textField.text);
return YES;
}
// Will Text Change Action
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSLog(@"将要被改变的范围:%ld, %ld", (long)range.location, (long)range.length);
NSLog(@"将要改变的文本:%@", string);

NSLog(@"%@", textField.text);
return YES;

}
// clear button Action
-(BOOL)textFieldShouldClear:(UITextField *)textField
{
NSLog(@"将被清空时执行的方法%@", textField.text);
return YES;
}

</pre>

欢迎大家踊跃评论,让我们一起探讨技术!!
如果觉得文章不错,请帮忙点击文章下方的喜欢!!
你的支持将是对我最好的鼓励, 谢谢!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335

推荐阅读更多精彩内容