ios开发UI篇—UITextfield
概述
UITextField
在界面中显示可编辑文本区域的对象。- 您可以使用文本字段来使用屏幕键盘从用户收集基于文本的输入。键盘可以配置许多不同类型的输入,如纯文本,电子邮件,数字等等。文本字段使用目标操作机制和委托对象来报告在编辑过程中所做的更改。
除了基本的文本编辑行为之外,还可以将叠加视图添加到文本字段以显示其他信息并提供其他可定位控件。您可以为诸如书签按钮或搜索图标等元素添加自定义叠加视图。文本字段提供内置的叠加视图来清除当前文本。自定义覆盖视图的使用是可选的。
属性和方法
初始化
UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(100, 100, 100, 30)];
设置占位文本
textField.placeholder = @"请输入文字";
设置文本
textField.text = @"测试";
设置文本的颜色
textField.textColor = [UIColor redColor];
设置文本的字体
textField.font = [UIFont systemFontOfSize:14];
设置文本的对齐方式
textField.textAlignment = NSTextAlignmentRight;
设置输入框不能编辑
[textField setEnabled:NO];
设置编辑框中的内容密码显示
textField.secureTextEntry = YES;
启用文本字段时显示的背景图像。该图像显示在文本字段内容的其余部分后面。
textField.background = [UIImage imageNamed:@"登录logo"];
设置边框样式(更多边框样式到补充说明中查看)默认的样式为UITextBorderStyleNone
textField.borderStyle = UITextBorderStyleRoundedRect;
设置清除按钮的模式(更多清除按钮的模式到补充说明中查看)默认样式为UITextFieldViewModeNever
textField.clearButtonMode = UITextFieldViewModeUnlessEditing;
文本字段文本的最小字体大小。当“调整为适合”选项启用时,文本字段会自动更改字体大小以确保文本的最大可读性。您可以使用此属性来指定您认为适合文本的最小字体大小。
textField.minimumFontSize = 12;
设置键盘类型(更多键盘类型到补充说明中查看)
textField.keyboardType = UIKeyboardTypeNumberPad;
设置键盘上返回键的类型(更多返回类型到补充说明中查看)
textField.returnKeyType = UIReturnKeyJoin;
设置键盘的视觉样式(更多键盘的视觉效果到补充说明中查看)
textField.keyboardAppearance = UIKeyboardAppearanceLight;
文本字段的拼写检查行为。此属性决定了拼写检查在打字过程中是启用还是禁用
textField.spellCheckingType = UITextSpellCheckingTypeNo;
此属性决定了拼写检查在打字过程中是启用还是禁用。启用拼写检查后,文本对象会为所有拼写错误的单词生成红色下划线。如果用户点击拼写错误的单词,则文本对象向用户呈现可能的更正列表。
此属性的默认值是default,启用自动更正时启用拼写检查。此属性中的值将覆盖用户在“设置”>“常规”>“键盘”中设置的拼写检查设置。
文本字段的自动纠正行为。此属性确定在输入过程中自动更正是启用还是禁用
textField.autocorrectionType = UITextAutocorrectionTypeYes;
自动大写样式适用于键入的文本。此属性决定在什么时候自动按下Shift
键
textField.autocapitalizationType = UITextAutocapitalizationTypeAllCharacters;
设置左边视图(注意:需要先设置左边视图的显示模式为UITextFieldViewModeAlways
)
textField.leftViewMode = UITextFieldViewModeAlways;
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(, , , )];
imageView.image = [UIImage imageNamed:@"验证码"];
textField.leftView = imageView;
设置右边视图(注意:需要先设置右边视图的显示模式为UITextFieldViewModeAlways
)
textField.rightViewMode = UITextFieldViewModeAlways;
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(, , , )];
imageView.image = [UIImage imageNamed:@"验证码"];
textField.rightView = imageView;
代理方法
询问委托人是否应该在指定的文本字段中开始编辑。
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField; // return NO to disallow editing.
告诉委托人在指定的文本字段中开始编辑。
- (void)textFieldDidBeginEditing:(UITextField *)textField; // became first responder
询问委托人是否应在指定的文本字段中停止编辑。
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField; // return YES to allow editing to stop and to resign first responder status. NO to disallow the editing session to end
告诉委托人对指定的文本字段停止编辑。
- (void)textFieldDidEndEditing:(UITextField *)textField; // may be called if forced even if shouldEndEditing returns NO (e.g. view removed from window) or endEditing:YES called
告诉委托人对指定的文本字段停止编辑。
- (void)textFieldDidEndEditing:(UITextField *)textField reason:(UITextFieldDidEndEditingReason)reason NS_AVAILABLE_IOS(10_0); // if implemented, called in place of textFieldDidEndEditing:
询问委托人是否应该更改指定的文本。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string; // return NO to not change text
询问委托人是否应删除文本字段的当前内容。
- (BOOL)textFieldShouldClear:(UITextField *)textField; // called when clear button pressed. return NO to ignore (no notifications)
询问委托人文本字段是否应处理按下返回按钮。
- (BOOL)textFieldShouldReturn:(UITextField *)textField; // called when 'return' key pressed. return NO to ignore.
补充说明
设置UITextField
占位文字的颜色的俩种方法
第一种
KVC修改 如果不先设置占位文字, 占位文字的颜色是不管用的:
textField.placeholder = @"占位字符";
textField setValue:[UIColor redColor] forKeyPath:@"_placeholderLabel.textColor"];
第二种
通过attributedPlaceholder
属性修改占位文字颜色
NSAttributedString *attrString = [[NSAttributedString alloc] initWithString:@"请输入占位文字" attributes:@{NSForegroundColorAttributeName:[UIColor redColor],NSFontAttributeName:textField.font}];
textField.attributedPlaceholder = attrString;
UITextField.
borderStyle 边框样式的枚举以及说明
UITextField 的样式 |
说明 |
---|---|
UITextBorderStyleNone | 默认样式,文本字段不显示边框。 |
UITextBorderStyleLine | 在文本字段周围显示一个细长的矩形。 |
UITextBorderStyleBezel | 显示文本字段的边框样式边框。此样式通常用于标准数据输入字段。 |
UITextBorderStyleRoundedRect | 显示文本字段的圆角样式边框。 |
UITextField.
clearButtonMode 清除按钮的枚举以及说明
UITextField 清除按钮模式 |
说明 |
---|---|
UITextFieldViewModeNever | 清除按钮从不出现。 |
UITextFieldViewModeWhileEditing | 清除按钮仅在文本字段中编辑文本时显示。 |
UITextFieldViewModeUnlessEditing | 清除按钮仅在文本未被编辑时显示。 |
UITextFieldViewModeAlways | 如果文本字段包含文本,则始终显示清除按钮 |
UITextField.
keyboardType
键盘类型的枚举以及说明
UITextField 键盘类型 |
说明 |
---|---|
UIKeyboardTypeDefault | 指定当前输入法的默认键盘。 |
UIKeyboardTypeASCIICapable | 指定显示标准ASCII字符的键盘。 |
UIKeyboardTypeNumbersAndPunctuation | 指定数字和标点键盘。 |
UIKeyboardTypeURL | 指定为URL输入优化的键盘。这种键盘类型显着地以周期(“ .”)和斜杠(“/”)字符和“ .com”字符串为特征。 |
UIKeyboardTypeNumberPad | 指定用于PIN输入的数字小键盘。这种键盘类型0通过突出显示数字9。此键盘类型不支持自动大写。 |
UIKeyboardTypePhonePad | 指定用于输入电话号码的键盘。这种键盘类型显着地0通过数字9和“ *”和“ #”字符。此键盘类型不支持自动大写。 |
UIKeyboardTypeNamePhonePad | 指定用于输入个人姓名或电话号码的小键盘。此键盘类型不支持自动大写。 |
UIKeyboardTypeEmailAddress | 指定为输入电子邮件地址而优化的键盘。这种键盘类型突出地表现了at(“ @”),句号(“ .”)和空格字符。 |
UIKeyboardTypeDecimalPad | 指定一个带有数字和小数点的键盘。 |
UIKeyboardTypeTwitter | 指定一个针对Twitter文本输入进行优化的键盘,可以方便地访问at(“ @”)和hash(“ #”)字符。 |
UIKeyboardTypeWebSearch | 指定针对网页搜索字词和网址输入进行优化的键盘。这种类型的键盘突出显示了空格和句点(“ .”)字符。 |
UIKeyboardTypeASCIICapableNumberPad | 指定只输出ASCII数字的数字键盘。 |
UIKeyboardTypeAlphabet | 指定为字母输入而优化的键盘。 |
returnKeyType
键盘上返回键的枚举和说明
键盘上返回键的类型 | 说明 |
---|---|
UIReturnKeyDefault | 指定Return键的可见标题是“return”。 |
UIReturnKeyGo | 指定Return键的可见标题是“Go”。 |
UIReturnKeyGoogle | 指定返回键的可见标题是“Google”。 |
UIReturnKeyJoin | 指定Return键的可见标题是“Join”。 |
UIReturnKeyNext | 指定Return键的可见标题是“Next”。 |
UIReturnKeyRoute | 指定返回键的可见标题是“路由”。 |
UIReturnKeySearch | 指定返回键的可见标题是“搜索”。 |
UIReturnKeySend | 指定返回键的可见标题是“发送”。 |
UIReturnKeyYahoo | 指定返回键的可见标题是“Yahoo”。 |
UIReturnKeyDone | 指定返回键的可见标题是“完成”。 |
UIReturnKeyEmergencyCall | 指定返回键的可见标题是“紧急呼叫”。 |
UIReturnKeyContinue | 指定返回键的可见标题是“继续”。 |
keyboardAppearance
键盘的视觉效果的枚举值和说明
键盘的视觉效果 | 说明 |
---|---|
UIKeyboardAppearanceDefault | 指定当前输入法的默认键盘外观。这个常数对应于该UIKeyboardAppearanceLight 值。 |
UIKeyboardAppearanceDark | 指定适合黑暗UI外观的键盘外观。 |
UIKeyboardAppearanceLight | 指定适合轻量级UI外观的键盘外观。 |
UIKeyboardAppearanceAlert = UIKeyboardAppearanceDark | 已经废弃,指定适用于警报面板的键盘外观。 |
键盘相关通知
通知名称 | 说明 |
---|---|
UIKeyboardWillShowNotification | 键盘将要显示时发出的通知 |
UIKeyboardDidShowNotification | 键盘已经显示发出的通知 |
UIKeyboardWillHideNotification | 键盘将要隐藏时发出的通知 |
UIKeyboardDidHideNotification | 键盘已经隐藏时发出的通知 |
UIKeyboardWillChangeFrameNotification | 键盘的大小即将发生改变时发出的通知 |
UIKeyboardDidChangeFrameNotification | 键盘的大小已经发生改变时发出的通知 |
在文本字段成为第一响应者之前不久,编辑开始,并显示键盘(或其分配的输入视图)。编辑流程如下:
- 在成为第一响应者之前,文本字段调用其委托的方法。使用该方法来允许或阻止编辑文本字段的内容。
textFieldShouldBeginEditing:
- 文本字段成为第一响应者。
作为响应,系统显示键盘(或文本字段的输入视图),并根据需要发布通知。如果键盘或其他输入视图已经显示,则系统会改为通知和通知。UIKeyboardWillShowNotification
UIKeyboardDidShowNotification
UIKeyboardWillChangeFrameNotification
UIKeyboardDidChangeFrameNotification
- 文本字段调用其委托的方法并发布通知。
textFieldDidBeginEditing:UITextField
TextDidBeginEditingNotification
- 文本字段在编辑期间调用各种委托方法:
每当当前的文本改变,它调用该方法并发布通知。textField:shouldChangeCharactersInRange:replacementString:UI
TextFieldTextDidChangeNotification
当用户点击内置按钮清除文本时,它会调用该方法。textFieldShouldClear:
它调用用户点击键盘的返回按钮时的方法。textFieldShouldReturn:
- 在辞职作为第一响应者之前,文本字段调用其委托的方法。使用该方法来验证当前文本。
textFieldShouldEndEditing:
- 文本字段作为第一响应者辞职。
作为响应,系统根据需要隐藏或调整键盘。当隐藏键盘时,系统发布和通知。UIKeyboardWillHideNotification
UIKeyboardDidHideNotification
- 文本字段调用其委托的方法并发布通知。
textFieldDidEndEditing:UITextField
TextDidEndEditingNotification
自定义键盘
UIView *redView = [[UIView alloc] initWithFrame:CGRectMake(, , self.view.bounds.size.width, )];
redView.backgroundColor = [UIColor redColor];
textField.inputView = redView;
textField.textColor = [UIColor redColor];
作者:coder小鹏
ios开发UI篇—UITextfield的更多相关文章
- iOS开发UI篇—实现UItableview控件数据刷新
iOS开发UI篇—实现UItableview控件数据刷新 一.项目文件结构和plist文件 二.实现效果 1.说明:这是一个英雄展示界面,点击选中行,可以修改改行英雄的名称(完成数据刷新的操作). 运 ...
- iOS开发UI篇—Date Picker和UITool Bar控件简单介绍
iOS开发UI篇—Date Picker和UITool Bar控件简单介绍 一.Date Picker控件 1.简单介绍: Date Picker显示时间的控件 有默认宽高,不用设置数据源和代理 如何 ...
- iOS开发UI篇—UIWindow简单介绍
iOS开发UI篇—UIWindow简单介绍 一.简单介绍 UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow iOS程序启动完毕后,创建的第一个视图控件就是UIWi ...
- iOS开发UI篇—CAlayer(自定义layer)
iOS开发UI篇—CAlayer(自定义layer) 一.第一种方式 1.简单说明 以前想要在view中画东西,需要自定义view,创建一个类与之关联,让这个类继承自UIView,然后重写它的Draw ...
- iOS开发UI篇—UITabBarController简单介绍
iOS开发UI篇—UITabBarController简单介绍 一.简单介绍 UITabBarController和UINavigationController类似,UITabBarControlle ...
- iOS开发UI篇—懒加载
iOS开发UI篇—懒加载 1.懒加载基本 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,写的是其get方法. 注意:如果是懒加载的话则一定要注意先判断是否已经有了, ...
- iOS开发UI篇—CAlayer层的属性
iOS开发UI篇—CAlayer层的属性 一.position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint @property ...
- iOS开发UI篇—CAlayer(创建图层)
iOS开发UI篇—CAlayer(创建图层) 一.添加一个图层 添加图层的步骤: 1.创建layer 2.设置layer的属性(设置了颜色,bounds才能显示出来) 3.将layer添加到界面上(控 ...
- iOS开发UI篇—CALayer简介
iOS开发UI篇—CALayer简介 一.简单介绍 在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是UIView. 其实 ...
随机推荐
- overload与override的区别
override(重写,覆盖) 1.方法名.参数.返回值相同. 2.子类方法不能缩小父类方法的访问权限. 3.子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常). 4.存在于父类和子类之 ...
- RESTful API的十个最佳实践
WebAPI在过去几年里非常的盛行,我们很多以往的技术手段都慢慢的转换为使用WebAPI来开发,因为它的语法简单规范化,以及轻量级等特点,这种方式收到了广泛的推崇. 通常我们使用RESTFul(Rep ...
- linux 搜索文件内容并输出命令 grep、-i、-v ^#
grep /bin/grepgrep -iv [指定字条串] [文件]在文件中搜索字符串匹配的行并输出-i 不区分大小写 -v 排除指定字符串 grep -i java /etc/profile gr ...
- ubuntu 命令、linux环境变量设置
解压与压缩: tar.gz格式tar -xzvf xxx jar格式jar -xvf xxx.jar zip格式unzip xxx.zip zip -r xxx.zip xxx unarunar -e ...
- CSS 颜色 字体 背景 文本 边框 列表 display属性
1 颜色属性 <div style="color:blueviolet">ppppp</div> <div style="color:#f ...
- SQL Server 数据表代码创建约束
约束 非空约束 --NN,ont null constraint 必须填写数据不能为空 --指定表 Student 添加名为NN_Student_sClassId非空约束(指定列名sClassId), ...
- 五十个小技巧提高PHP执行效率
在项目开发过程中,经常遇到了一些PHP处理程序性能底下的情况,程序运行在centos+nginx环境,虽然这个有很多的原因如:服务器本身配置,运行环境nginx服务,php-fpm配置等等,更多有一点 ...
- jquery ztree的案例,附源代码
播客:http://itindex.net/detail/46094-jquery-ztree-%E7%A8%8B%E5%BA%8F 源代码: http://download.csdn.net/d ...
- wrap装饰器包
import wrapt # without argument in decorator @wrapt.decorator def logging(wrapped, instance, args, k ...
- 【linux】安装和配置 mysql服务器
按照官网教程,根据自己的系统安装不同的发行版 https://dev.mysql.com/doc/refman/5.6/en/linux-installation-yum-repo.html 配置: ...