UITextField属性及方法说明
- /初始化textfield并设置位置及大小
- UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(, , , )]
- //设置边框样式,只有设置了才会显示边框样式
- text.borderStyle = UITextBorderStyleRoundedRect;
- typedef enum {
- UITextBorderStyleNone,
- UITextBorderStyleLine,
- UITextBorderStyleBezel,
- UITextBorderStyleRoundedRect
- } UITextBorderStyle;
- //设置输入框的背景颜色,此时设置为白色 如果使用了自定义的背景图片边框会被忽略掉
- text.backgroundColor = [UIColor whiteColor];
- //设置背景
- text.background = [UIImage imageNamed:@"dd.png"];//UITextField 的背景,注意只有UITextBorderStyleNone的时候改属性有效
- //设置背景
- text.disabledBackground = [UIImage imageNamed:@"cc.png"];
- //当输入框没有内容时,水印提示 提示内容为password
- text.placeholder = @"password";
- //设置输入框内容的字体样式和大小
- text.font = [UIFont fontWithName:@"Arial" size:20.0f];
- //设置字体颜色
- text.textColor = [UIColor redColor];
- //输入框中是否有个叉号,在什么时候显示,用于一次性删除输入框中的内容
- text.clearButtonMode = UITextFieldViewModeAlways;
- typedef enum {
- UITextFieldViewModeNever, 重不出现
- UITextFieldViewModeWhileEditing, 编辑时出现
- UITextFieldViewModeUnlessEditing, 除了编辑外都出现
- UITextFieldViewModeAlways 一直出现
- } UITextFieldViewMode;
- //输入框中一开始就有的文字
- text.text = @"一开始就在输入框的文字";
- //每输入一个字符就变成点 用语密码输入
- text.secureTextEntry = YES;
- //是否纠错
- text.autocorrectionType = UITextAutocorrectionTypeNo;
- typedef enum {
- UITextAutocorrectionTypeDefault, 默认
- UITextAutocorrectionTypeNo, 不自动纠错
- UITextAutocorrectionTypeYes, 自动纠错
- } UITextAutocorrectionType;
- //再次编辑就清空
- text.clearsOnBeginEditing = YES;
- //内容对齐方式
- text.textAlignment = UITextAlignmentLeft;
- //内容的垂直对齐方式 UITextField继承自UIControl,此类中有一个属性contentVerticalAlignment
- text.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
- //设置为YES时文本会自动缩小以适应文本窗口大小.默认是保持原来大小,而让长文本滚动
- textFied.adjustsFontSizeToFitWidth = YES;
- //设置自动缩小显示的最小字体大小
- text.minimumFontSize = ;
- //设置键盘的样式
- text.keyboardType = UIKeyboardTypeNumberPad;
- typedef enum {
- UIKeyboardTypeDefault, 默认键盘,支持所有字符
- UIKeyboardTypeASCIICapable, 支持ASCII的默认键盘
- UIKeyboardTypeNumbersAndPunctuation, 标准电话键盘,支持+*#字符
- UIKeyboardTypeURL, URL键盘,支持.com按钮 只支持URL字符
- UIKeyboardTypeNumberPad, 数字键盘
- UIKeyboardTypePhonePad, 电话键盘
- UIKeyboardTypeNamePhonePad, 电话键盘,也支持输入人名
- UIKeyboardTypeEmailAddress, 用于输入电子 邮件地址的键盘
- UIKeyboardTypeDecimalPad, 数字键盘 有数字和小数点
- UIKeyboardTypeTwitter, 优化的键盘,方便输入@、#字符
- UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable,
- } UIKeyboardType;
- //首字母是否大写
- text.autocapitalizationType = UITextAutocapitalizationTypeNone;
- typedef enum {
- UITextAutocapitalizationTypeNone, 不自动大写
- UITextAutocapitalizationTypeWords, 单词首字母大写
- UITextAutocapitalizationTypeSentences, 句子的首字母大写
- UITextAutocapitalizationTypeAllCharacters, 所有字母都大写
- } UITextAutocapitalizationType;
- //return键变成什么键
- text.returnKeyType =UIReturnKeyDone;
- 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 *image=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"right.png"]];
- text.rightView=image;
- text.rightViewMode = UITextFieldViewModeAlways;
- typedef enum {
- UITextFieldViewModeNever,
- UITextFieldViewModeWhileEditing,
- UITextFieldViewModeUnlessEditing,
- 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:
- 代替输入
- inputView //代替标准的系统键盘
- inputAccessoryView //编辑时显示在系统键盘或用户自定义的inputView上面的视图
- 委托方法
- - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
- //返回一个BOOL值,指定是否循序文本字段开始编辑
- return YES;
- }
- - (void)textFieldDidBeginEditing:(UITextField *)textField{
- //开始编辑时触发,文本字段将成为first responder
- }
- - (BOOL)textFieldShouldEndEditing:(UITextField *)textField{
- //返回BOOL值,指定是否允许文本字段结束编辑,当编辑结束,文本字段会让出first responder
- //要想在用户结束编辑时阻止文本字段消失,可以返回NO
- //这对一些文本字段必须始终保持活跃状态的程序很有用,比如即时消息
- return NO;
- }
- - (void)textFieldDidEndEditing:(UITextField *)textField;{
- }// 上面返回YES后执行;上面返回NO时有可能强制执行(e.g. view removed from window)
- - (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 //键盘隐藏之后发送
- NIB中:
- 、Text :设置文本框的默认文本。
- 、Placeholder : 可以在文本框中显示灰色的字,用于提示用户应该在这个文本框输入什么内容。当这个文本框中输入了数据时,用于提示的灰色的字将会自动消失。
- 、Background :
- 、Disabled : 若选中此项,用户将不能更改文本框内容。
- 、接下来是三个按钮,用来设置对齐方式。
- 、Border Style : 选择边界风格。
- 、Clear Button : 这是一个下拉菜单,你可以选择清除按钮什么时候出现,所谓清除按钮就是出一个现在文本框右边的小 X ,你可以有以下选择:
- 7.1 Never appears : 从不出现
- 7.2 Appears while editing : 编辑时出现
- 7.3 Appears unless editing :
- 7.4 Is always visible : 总是可见
- 、Clear when editing begins : 若选中此项,则当开始编辑这个文本框时,文本框中之前的内容会被清除掉。比如,你现在这个文本框 A 中输入了 "What" ,之后去编辑文本框 B,若再回来编辑文本框 A ,则其中的 "What" 会被立即清除。
- 、Text Color : 设置文本框中文本的颜色。
- 、Font : 设置文本的字体与字号。
- 、Min Font Size : 设置文本框可以显示的最小字体(不过我感觉没什么用)
- 、Adjust To Fit : 指定当文本框尺寸减小时,文本框中的文本是否也要缩小。选择它,可以使得全部文本都可见,即使文本很长。但是这个选项要跟 Min Font Size 配合使用,文本再缩小,也不会小于设定的 Min Font Size 。
- 接下来的部分用于设置键盘如何显示。
- 、Captitalization : 设置大写。下拉菜单中有四个选项:
- 13.1 None : 不设置大写
- 13.2 Words : 每个单词首字母大写,这里的单词指的是以空格分开的字符串
- 13.3 Sentances : 每个句子的第一个字母大写,这里的句子是以句号加空格分开的字符串
- 13.4 All Characters : 所以字母大写
- 、Correction : 检查拼写,默认是 YES 。
- 、Keyboard : 选择键盘类型,比如全数字、字母和数字等。
- 、Appearance:
- 、Return Key : 选择返回键,可以选择 Search 、 Return 、 Done 等。
- 、Auto-enable Return Key : 如选择此项,则只有至少在文本框输入一个字符后键盘的返回键才有效。
- 、Secure : 当你的文本框用作密码输入框时,可以选择这个选项,此时,字符显示为星号。
- .Alignment Horizontal 水平对齐方式
- .Alignment Vertical 垂直对齐方式
- .用于返回一个BOOL值 输入框是否 Selected(选中) Enabled(可用) Highlighted(高亮)
- 我们有时需要定制化UITextField对象的风格,可以添加许多不同的重写方法,来改变文本字段的显示行为。这些方法都会返回一个CGRect结构,制定了文本字段每个部件的边界范围,甚至修改placeHolder颜色,字体。
- – textRectForBounds: //重写来重置文字区域
- – drawTextInRect: //改变绘文字属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了.
- – placeholderRectForBounds: //重写来重置占位符区域
- – drawPlaceholderInRect: //重写改变绘制占位符属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了
- – borderRectForBounds: //重写来重置边缘区域
- – editingRectForBounds: //重写来重置编辑区域
- – clearButtonRectForBounds: //重写来重置clearButton位置,改变size可能导致button的图片失真
- – leftViewRectForBounds:
- – rightViewRectForBounds:
- 通过– drawPlaceholderInRect:方法可改变placeHolder颜色、字体,请看代码:
- 首先定义一个类CustomTextField让它继承UITextField实现以下方法即可:
- //控制清除按钮的位置
- -(CGRect)clearButtonRectForBounds:(CGRect)bounds
- {
- return CGRectMake(bounds.origin.x + bounds.size.width - , bounds.origin.y + bounds.size.height -, , );
- }
- //控制placeHolder的位置,左右缩20
- -(CGRect)placeholderRectForBounds:(CGRect)bounds
- {
- //return CGRectInset(bounds, 20, 0);
- CGRect inset = CGRectMake(bounds.origin.x+, bounds.origin.y, bounds.size.width -, bounds.size.height);//更好理解些
- return inset;
- }
- //控制显示文本的位置
- -(CGRect)textRectForBounds:(CGRect)bounds
- {
- //return CGRectInset(bounds, 50, 0);
- CGRect inset = CGRectMake(bounds.origin.x+, bounds.origin.y, bounds.size.width -, bounds.size.height);//更好理解些
- return inset;
- }
- //控制编辑文本的位置
- -(CGRect)editingRectForBounds:(CGRect)bounds
- {
- //return CGRectInset( bounds, 10 , 0 );
- CGRect inset = CGRectMake(bounds.origin.x +, bounds.origin.y, bounds.size.width -, bounds.size.height);
- return inset;
- }
- //控制左视图位置
- - (CGRect)leftViewRectForBounds:(CGRect)bounds
- {
- CGRect inset = CGRectMake(bounds.origin.x +, bounds.origin.y, bounds.size.width-, bounds.size.height);
- return inset;
- //return CGRectInset(bounds,50,0);
- }
- //控制placeHolder的颜色、字体
- - (void)drawPlaceholderInRect:(CGRect)rect
- {
- //CGContextRef context = UIGraphicsGetCurrentContext();
- //CGContextSetFillColorWithColor(context, [UIColor yellowColor].CGColor);
- [[UIColororangeColor] setFill];
- [[selfplaceholder] drawInRect:rectwithFont:[UIFontsystemFontOfSize:]];
- }
- //下面是使用CustomTextField的代码,可放在viewDidLoad等方法中
- _textField = [[CustomTextField alloc] initWithFrame:CGRectMake(, , , )];
- _textField.placeholder = @"请输入帐号信息";
- _textField.borderStyle = UITextBorderStyleRoundedRect;
- _textField.textAlignment = UITextAlignmentLeft;
- _textField.delegate = self;
- _textField.clearButtonMode = UITextFieldViewModeWhileEditing;
- _textField.text = @"aa";
- UIImageView *imgv = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon-iwant-2.png"]];
- _textField.leftView = imgv;
- _textField.leftViewMode = UITextFieldViewModeAlways;
- [self.view addSubview:_textField];
UITextField属性及方法说明的更多相关文章
- iOS开发之--UITextField属性
UITextField属性 0. enablesReturnKeyAutomatically 默认为No,如果设置为Yes,文本框中没有输入任何字符的话,右下角的返回按钮是disabled的. ...
- IOS-开发日志-UITextField属性
UITextField属性 0. enablesReturnKeyAutomatically 属性 默认为No,如果设置为Yes,文本框中没有输入任何字符的话,右下角的返回按钮是disable ...
- 基本控件文档-UITextField属性
CHENYILONG Blog 基本控件文档-UITextField属性 Fullscreen UITextField属性技术博客http://www.cnblogs.com/ChenYilong ...
- iOS开发UI篇 -- UISearchBar 属性、方法详解及应用(自定义搜索框样式)
很多APP都会涉及到搜索框,苹果也为我们提供了默认的搜索框UISearchBar.但实际项目中我们通常需要更改系统默认搜索框的样式.为了实现这一目标,我们需要先搞懂 UISearchBar 的属性及方 ...
- 基本控件文档-UITextField属性---iOS-Apple苹果官方文档翻译
本系列所有开发文档翻译链接地址:iOS7开发-Apple苹果iPhone开发Xcode官方文档翻译PDF下载地址 //转载请注明出处--本文永久链接:http://www.cnblogs.com/Ch ...
- PHP 面向对象编程和设计模式 (2/5) - 静态变量、属性和方法及延迟绑定
PHP高级程序设计 学习笔记 2014.06.10 Static(静态)关键字用来定义静态方法和属性,static 也可用于定义静态变量以及后期静态绑定. 1.静态变量 static variable ...
- 速战速决 (5) - PHP: 动态地创建属性和方法, 对象的复制, 对象的比较, 加载指定的文件, 自动加载类文件, 命名空间
[源码下载] 速战速决 (5) - PHP: 动态地创建属性和方法, 对象的复制, 对象的比较, 加载指定的文件, 自动加载类文件, 命名空间 作者:webabcd 介绍速战速决 之 PHP 动态地创 ...
- String类型的属性和方法
× 目录 [1]属性 [2]对象通用方法 [3]访问字符方法[4]字符串拼接[5]创建子串方法[6]大小写转换[7]查找子串位置[8]正则匹配方法[9]去除首尾空格[10]字符串比较 前面的话 前面已 ...
- python 类属性与方法
Python 类属性与方法 标签(空格分隔): Python Python的访问限制 Python支持面向对象,其对属性的权限控制通过属性名来实现,如果一个属性有双下划线开头(__),该属性就无法被外 ...
随机推荐
- Vue.js——60分钟快速入门(转)
vue:Vue.js——60分钟快速入门 <!doctype html> <html lang="en"> <head> <meta ch ...
- Eggjs 设置跨域请求
1. 安装egg-cors npm install egg-cors --save 2.打开config/plugin.js exports.cors: { enable: true, package ...
- 学习mysql,记录下常用的命令行语句
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用 ...
- 依赖注入框架Ninject
为什么需要依赖注入 我们提到MVC的一个重要特征是关注点分离(separation of concerns).我们希望应用程序的各部分组件尽可能多的相互独立.尽可能少的相互依赖. 我们的理想情况是:一 ...
- mysql 循环、游标
mysql 循环只能在存储过程.代码记录 CREATE DEFINER=`front`@`%` PROCEDURE `a_1`() BEGIN -- 声明变量,接收游标循环变量 DECLARE _co ...
- gevent模块学习(二)
2. Queue类,常用用于Greenlet之间的异步共享 q = gevent.queue.Queue(maxsize=None, items=None) -> Queue 说明: 创建一个指 ...
- flex布局设置width无效
子元素设置 : flex: 0 0 85px; 参数: flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto.后两个属性可选. 该属性有 ...
- python web 2
思路整理 过程:请求豆瓣电影 top 250 url='https://movie.douban.com/' 结果:得到网页的html 源码 (保存为hml文件 就可以用浏览器打开) 提示: Loca ...
- 初学python之感悟
python的强大有目共睹,现将初学python,觉得其中比较重要的知识罗列如下: 类似于数组的东西:列表.元组.集合.字符串以及字典,这几个东西充分体现了python的强大和逆天. 列表: x=[1 ...
- 常用正则表达式 c#
/// <summary> /// 是否手机号 /// </summary> /// <param name="str"></param& ...