音效素材网提供各类素材,打造精品素材网站!

站内导航 站长工具 投稿中心 手机访问

音效素材

IOS UI学习教程之设置UITextField各种属性
日期:2016-03-31 16:52:06   来源:脚本之家

UITextField是IOS中非常常用的一个控件,用来接收用户输入信息,完成应用和用户的交互。它的主要属性设置如下:

//初始化textfield并设置位置及大小
 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)];
 
//设置边框样式,只有设置了才会显示边框样式 
 text.borderStyle = UITextBorderStyleRoundedRect;

 typedef enum {
 UITextBorderStyleNone, 
 UITextBorderStyleLine,
 UITextBorderStyleBezel,
 UITextBorderStyleRoundedRect 
 } UITextBorderStyle;
 
//设置输入框的背景颜色,此时设置为白色 如果使用了自定义的背景图片边框会被忽略掉 
 text.backgroundColor = [UIColor whiteColor];
 
//设置背景
 text.background = [UIImage imageNamed:@"dd.png"];
 
//设置背景 
 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 = 20;
 
//设置键盘的样式
 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:
 
委托方法
 
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{ 
 
//返回一个BOOL值,指定是否循序文本字段开始编辑 
 
 return YES; 
} 
 
- (void)textFieldDidBeginEditing:(UITextField *)textField{ 

 //开始编辑时触发,文本字段将成为first responder 
} 
 
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField{ 

//返回BOOL值,指定是否允许文本字段结束编辑,当编辑结束,文本字段会让出first responder 
 
//要想在用户结束编辑时阻止文本字段消失,可以返回NO 
 
//这对一些文本字段必须始终保持活跃状态的程序很有用,比如即时消息 
 
 return NO; 
} 
 
- (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; 
}

以上就是本文的全部内容,希望对大家学习IOS程序设计有所帮助。

    您感兴趣的教程

    在docker中安装mysql详解

    本篇文章主要介绍了在docker中安装mysql详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编...

    详解 安装 docker mysql

    win10中文输入法仅在桌面显示怎么办?

    win10中文输入法仅在桌面显示怎么办?

    win10系统使用搜狗,QQ输入法只有在显示桌面的时候才出来,在使用其他程序输入框里面却只能输入字母数字,win10中...

    win10 中文输入法

    一分钟掌握linux系统目录结构

    这篇文章主要介绍了linux系统目录结构,通过结构图和多张表格了解linux系统目录结构,感兴趣的小伙伴们可以参考一...

    结构 目录 系统 linux

    PHP程序员玩转Linux系列 Linux和Windows安装

    这篇文章主要为大家详细介绍了PHP程序员玩转Linux系列文章,Linux和Windows安装nginx教程,具有一定的参考价值,感兴趣...

    玩转 程序员 安装 系列 PHP

    win10怎么安装杜比音效Doby V4.1 win10安装杜

    第四代杜比®家庭影院®技术包含了一整套协同工作的技术,让PC 发出清晰的环绕声同时第四代杜比家庭影院技术...

    win10杜比音效

    纯CSS实现iOS风格打开关闭选择框功能

    这篇文章主要介绍了纯CSS实现iOS风格打开关闭选择框,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作...

    css ios c

    Win7如何给C盘扩容 Win7系统电脑C盘扩容的办法

    Win7如何给C盘扩容 Win7系统电脑C盘扩容的

    Win7给电脑C盘扩容的办法大家知道吗?当系统分区C盘空间不足时,就需要给它扩容了,如果不管,C盘没有足够的空间...

    Win7 C盘 扩容

    百度推广竞品词的投放策略

    SEM是基于关键词搜索的营销活动。作为推广人员,我们所做的工作,就是打理成千上万的关键词,关注它们的质量度...

    百度推广 竞品词

    Visual Studio Code(vscode) git的使用教程

    这篇文章主要介绍了详解Visual Studio Code(vscode) git的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。...

    教程 Studio Visual Code git

    七牛云储存创始人分享七牛的创立故事与

    这篇文章主要介绍了七牛云储存创始人分享七牛的创立故事与对Go语言的应用,七牛选用Go语言这门新兴的编程语言进行...

    七牛 Go语言

    Win10预览版Mobile 10547即将发布 9月19日上午

    微软副总裁Gabriel Aul的Twitter透露了 Win10 Mobile预览版10536即将发布,他表示该版本已进入内部慢速版阶段,发布时间目...

    Win10 预览版

    HTML标签meta总结,HTML5 head meta 属性整理

    移动前端开发中添加一些webkit专属的HTML5头部标签,帮助浏览器更好解析HTML代码,更好地将移动web前端页面表现出来...

    移动端html5模拟长按事件的实现方法

    这篇文章主要介绍了移动端html5模拟长按事件的实现方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家...

    移动端 html5 长按

    HTML常用meta大全(推荐)

    这篇文章主要介绍了HTML常用meta大全(推荐),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参...

    cdr怎么把图片转换成位图? cdr图片转换为位图的教程

    cdr怎么把图片转换成位图? cdr图片转换为

    cdr怎么把图片转换成位图?cdr中插入的图片想要转换成位图,该怎么转换呢?下面我们就来看看cdr图片转换为位图的...

    cdr 图片 位图

    win10系统怎么录屏?win10系统自带录屏详细教程

    win10系统怎么录屏?win10系统自带录屏详细

    当我们是使用win10系统的时候,想要录制电脑上的画面,这时候有人会想到下个第三方软件,其实可以用电脑上的自带...

    win10 系统自带录屏 详细教程

    + 更多教程 +
    Windows系统Linux系统苹果MACAndroidiOS系统鸿蒙系统