1. /初始化textfield并设置位置及大小
  2. UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(, , , )]
  3.  
  4. //设置边框样式,只有设置了才会显示边框样式 
  5. text.borderStyle = UITextBorderStyleRoundedRect;
  6.  typedef enum {
  7. UITextBorderStyleNone,
  8. UITextBorderStyleLine,
  9. UITextBorderStyleBezel,
  10. UITextBorderStyleRoundedRect
  11. } UITextBorderStyle;
  12.  
  13. //设置输入框的背景颜色,此时设置为白色 如果使用了自定义的背景图片边框会被忽略掉 
  14.   text.backgroundColor = [UIColor whiteColor];
  15.  
  16. //设置背景
  17. text.background = [UIImage imageNamed:@"dd.png"];//UITextField 的背景,注意只有UITextBorderStyleNone的时候改属性有效
  18.  
  19. //设置背景
  20. text.disabledBackground = [UIImage imageNamed:@"cc.png"];
  21. //当输入框没有内容时,水印提示 提示内容为password
  22. text.placeholder = @"password";
  23.  
  24. //设置输入框内容的字体样式和大小
  25. text.font = [UIFont fontWithName:@"Arial" size:20.0f];
  26.  
  27. //设置字体颜色
  28. text.textColor = [UIColor redColor];
  29.  
  30. //输入框中是否有个叉号,在什么时候显示,用于一次性删除输入框中的内容
  31. text.clearButtonMode = UITextFieldViewModeAlways;
  32. typedef enum {
  33. UITextFieldViewModeNever, 重不出现
  34. UITextFieldViewModeWhileEditing, 编辑时出现
  35. UITextFieldViewModeUnlessEditing, 除了编辑外都出现
  36. UITextFieldViewModeAlways  一直出现
  37. } UITextFieldViewMode;
  38.  
  39. //输入框中一开始就有的文字
  40. text.text = @"一开始就在输入框的文字";
  41.  
  42. //每输入一个字符就变成点 用语密码输入
  43. text.secureTextEntry = YES;
  44.  
  45. //是否纠错
  46. text.autocorrectionType = UITextAutocorrectionTypeNo;
  47. typedef enum {
  48. UITextAutocorrectionTypeDefault, 默认
  49. UITextAutocorrectionTypeNo,  不自动纠错
  50. UITextAutocorrectionTypeYes, 自动纠错
  51. } UITextAutocorrectionType;
  52.  
  53. //再次编辑就清空
  54. text.clearsOnBeginEditing = YES;
  55.  
  56. //内容对齐方式
  57. text.textAlignment = UITextAlignmentLeft;
  58.  
  59. //内容的垂直对齐方式 UITextField继承自UIControl,此类中有一个属性contentVerticalAlignment
  60. text.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
  61.  
  62. //设置为YES时文本会自动缩小以适应文本窗口大小.默认是保持原来大小,而让长文本滚动 
  63. textFied.adjustsFontSizeToFitWidth = YES;
  64. //设置自动缩小显示的最小字体大小
  65. text.minimumFontSize = ;
  66.  
  67. //设置键盘的样式
  68. text.keyboardType = UIKeyboardTypeNumberPad;
  69. typedef enum {
  70. UIKeyboardTypeDefault,  默认键盘,支持所有字符
  71. UIKeyboardTypeASCIICapable, 支持ASCII的默认键盘
  72. UIKeyboardTypeNumbersAndPunctuation, 标准电话键盘,支持+*#字符
  73. UIKeyboardTypeURL, URL键盘,支持.com按钮 只支持URL字符
  74. UIKeyboardTypeNumberPad,  数字键盘
  75. UIKeyboardTypePhonePad,   电话键盘
  76. UIKeyboardTypeNamePhonePad,  电话键盘,也支持输入人名
  77. UIKeyboardTypeEmailAddress,  用于输入电子 邮件地址的键盘
  78. UIKeyboardTypeDecimalPad,  数字键盘 有数字和小数点
  79. UIKeyboardTypeTwitter,  优化的键盘,方便输入@、#字符
  80. UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable,
  81. } UIKeyboardType;
  82.  
  83. //首字母是否大写
  84. text.autocapitalizationType = UITextAutocapitalizationTypeNone;
  85. typedef enum {
  86. UITextAutocapitalizationTypeNone, 不自动大写
  87. UITextAutocapitalizationTypeWords, 单词首字母大写
  88. UITextAutocapitalizationTypeSentences, 句子的首字母大写
  89. UITextAutocapitalizationTypeAllCharacters, 所有字母都大写
  90. } UITextAutocapitalizationType;
  91.  
  92. //return键变成什么键
  93. text.returnKeyType =UIReturnKeyDone;
  94. typedef enum {
  95. UIReturnKeyDefault, 默认 灰色按钮,标有Return
  96. UIReturnKeyGo,  标有Go的蓝色按钮
  97. UIReturnKeyGoogle,标有Google的蓝色按钮,用语搜索
  98. UIReturnKeyJoin,标有Join的蓝色按钮
  99. UIReturnKeyNext,标有Next的蓝色按钮
  100. UIReturnKeyRoute,标有Route的蓝色按钮
  101. UIReturnKeySearch,标有Search的蓝色按钮
  102. UIReturnKeySend,标有Send的蓝色按钮
  103. UIReturnKeyYahoo,标有Yahoo的蓝色按钮
  104. UIReturnKeyYahoo,标有Yahoo的蓝色按钮
  105. UIReturnKeyEmergencyCall, 紧急呼叫按钮
  106. } UIReturnKeyType;
  107.  
  108. //键盘外观
  109. textView.keyboardAppearance=UIKeyboardAppearanceDefault
  110. typedef enum {
  111. UIKeyboardAppearanceDefault 默认外观,浅灰色
  112. UIKeyboardAppearanceAlert,   深灰 石墨色
  113. } UIReturnKeyType;
  114.  
  115. //设置代理 用于实现协议
  116. text.delegate = self;
  117.  
  118. //把textfield加到视图中
  119. [self.window addSubview:text];
  120.  
  121. //最右侧加图片是以下代码  左侧类似
  122. UIImageView *image=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"right.png"]];
  123. text.rightView=image;
  124. text.rightViewMode = UITextFieldViewModeAlways;
  125.  
  126. typedef enum {
  127. UITextFieldViewModeNever,
  128. UITextFieldViewModeWhileEditing,
  129. UITextFieldViewModeUnlessEditing,
  130. UITextFieldViewModeAlways
  131. } UITextFieldViewMode;
  132.  
  133. //按return键键盘往下收 becomeFirstResponder
  134.  
  135. 类要采用UITextFieldDelegate协议
  136.  
  137. text.delegate = self; 声明text的代理是我,我会去实现把键盘往下收的方法 这个方法在UITextFieldDelegate里所以我们要采用UITextFieldDelegate这个协议
  138.  
  139. - (BOOL)textFieldShouldReturn:(UITextField *)textField
  140. {
  141. [text resignFirstResponder]; //主要是[receiver resignFirstResponder]在哪调用就能把receiver对应的键盘往下收
  142. return YES;
  143. }
  144.  
  145. 界面重写绘制行为
  146. 除了UITextField对象的风格选项,你还可以定制化UITextField对象,为他添加许多不同的重写方法,来改变文本字段的显示行为。这些方法都会返回一个CGRect结构,制定了文本字段每个部件的边界范围。以下方法都可以重写。
  147.  
  148. textRectForBounds:    //重写来重置文字区域
  149. drawTextInRect:    //改变绘文字属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了.
  150. placeholderRectForBounds:  //重写来重置占位符区域
  151. drawPlaceholderInRect:  //重写改变绘制占位符属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了.
  152. borderRectForBounds:  //重写来重置边缘区域
  153. editingRectForBounds:  //重写来重置编辑区域
  154. clearButtonRectForBounds:  //重写来重置clearButton位置,改变size可能导致button的图片失真
  155. leftViewRectForBounds:
  156. rightViewRectForBounds:
  157.  
  158. 代替输入
  159. inputView //代替标准的系统键盘
  160. inputAccessoryView //编辑时显示在系统键盘或用户自定义的inputView上面的视图
  161.  
  162. 委托方法
  163. - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{ 
  164.   
  165. //返回一个BOOL值,指定是否循序文本字段开始编辑 
  166.   
  167. return YES; 
  168. } 
  169.  
  170. - (void)textFieldDidBeginEditing:(UITextField *)textField{ 
  171. //开始编辑时触发,文本字段将成为first responder 
  172. } 
  173.  
  174. - (BOOL)textFieldShouldEndEditing:(UITextField *)textField{ 
  175. //返回BOOL值,指定是否允许文本字段结束编辑,当编辑结束,文本字段会让出first responder 
  176.   //要想在用户结束编辑时阻止文本字段消失,可以返回NO 
  177.   //这对一些文本字段必须始终保持活跃状态的程序很有用,比如即时消息 
  178.  
  179. return NO; 
  180. } 
  181. - (void)textFieldDidEndEditing:(UITextField *)textField;{
  182.  
  183. }// 上面返回YES后执行;上面返回NO时有可能强制执行(e.g. view removed from window)
  184.  
  185. - (BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ 
  186. //当用户使用自动更正功能,把输入的文字修改为推荐的文字时,就会调用这个方法。 
  187. //这对于想要加入撤销选项的应用程序特别有用 
  188. //可以跟踪字段内所做的最后一次修改,也可以对所有编辑做日志记录,用作审计用途。  
  189. //要防止文字被改变可以返回NO 
  190. //这个方法的参数中有一个NSRange对象,指明了被改变文字的位置,建议修改的文本也在其中 
  191.  
  192.   return YES; 
  193. } 
  194.  
  195. - (BOOL)textFieldShouldClear:(UITextField *)textField{ 
  196.  
  197. //返回一个BOOL值指明是否允许根据用户请求清除内容 
  198. //可以设置在特定条件下才允许清除内容 
  199.  
  200.   return YES; 
  201. } 
  202.  
  203. -(BOOL)textFieldShouldReturn:(UITextField *)textField{ 
  204.  
  205. //返回一个BOOL值,指明是否允许在按下回车键时结束编辑 
  206. //如果允许要调用resignFirstResponder 方法,这回导致结束编辑,而键盘会被收起[textField resignFirstResponder];
  207. //查一下resign这个单词的意思就明白这个方法了 
  208.   return YES; 
  209. } 
  210.  
  211. 通知
  212. UITextField派生自UIControl,所以UIControl类中的通知系统在文本字段中也可以使用。除了UIControl类的标准事件,你还可以使用下列UITextField类特有的事件
  213.  
  214. UITextFieldTextDidBeginEditingNotification
  215. UITextFieldTextDidChangeNotification
  216. UITextFieldTextDidEndEditingNotification
  217. 当文本字段退出编辑模式时触发。通知的object属性存储了最终文本。
  218.  
  219. 因为文本字段要使用键盘输入文字,所以下面这些事件发生时,也会发送动作通知
  220.  
  221. UIKeyboardWillShowNotification  //键盘显示之前发送
  222. UIKeyboardDidShowNotification  //键盘显示之后发送
  223. UIKeyboardWillHideNotification  //键盘隐藏之前发送
  224. UIKeyboardDidHideNotification  //键盘隐藏之后发送
  225.  
  226. NIB中:
  227. Text :设置文本框的默认文本。
  228. Placeholder 可以在文本框中显示灰色的字,用于提示用户应该在这个文本框输入什么内容。当这个文本框中输入了数据时,用于提示的灰色的字将会自动消失。
  229. Background
  230. Disabled 若选中此项,用户将不能更改文本框内容。
  231. 、接下来是三个按钮,用来设置对齐方式。
  232. Border Style 选择边界风格。
  233. Clear Button 这是一个下拉菜单,你可以选择清除按钮什么时候出现,所谓清除按钮就是出一个现在文本框右边的小 X ,你可以有以下选择:
  234. 7.1 Never appears 从不出现
  235. 7.2 Appears while editing 编辑时出现
  236. 7.3 Appears unless editing
  237. 7.4 Is always visible 总是可见
  238. Clear when editing begins 若选中此项,则当开始编辑这个文本框时,文本框中之前的内容会被清除掉。比如,你现在这个文本框 A 中输入了 "What" ,之后去编辑文本框 B,若再回来编辑文本框 A ,则其中的 "What" 会被立即清除。
  239. Text Color 设置文本框中文本的颜色。
  240. Font 设置文本的字体与字号。
  241. Min Font Size 设置文本框可以显示的最小字体(不过我感觉没什么用)
  242. Adjust To Fit 指定当文本框尺寸减小时,文本框中的文本是否也要缩小。选择它,可以使得全部文本都可见,即使文本很长。但是这个选项要跟 Min Font Size 配合使用,文本再缩小,也不会小于设定的 Min Font Size
  243. 接下来的部分用于设置键盘如何显示。
  244. Captitalization 设置大写。下拉菜单中有四个选项:
  245. 13.1 None 不设置大写
  246. 13.2 Words 每个单词首字母大写,这里的单词指的是以空格分开的字符串
  247. 13.3 Sentances 每个句子的第一个字母大写,这里的句子是以句号加空格分开的字符串
  248. 13.4 All Characters 所以字母大写
  249. Correction 检查拼写,默认是 YES
  250. Keyboard 选择键盘类型,比如全数字、字母和数字等。
  251. Appearance
  252. Return Key 选择返回键,可以选择 Search Return Done 等。
  253. Auto-enable Return Key 如选择此项,则只有至少在文本框输入一个字符后键盘的返回键才有效。
  254. Secure 当你的文本框用作密码输入框时,可以选择这个选项,此时,字符显示为星号。
  255.  
  256. .Alignment Horizontal 水平对齐方式
  257. .Alignment Vertical 垂直对齐方式
  258. .用于返回一个BOOL值 输入框是否 Selected(选中) Enabled(可用) Highlighted(高亮)
  259.  
  260. 我们有时需要定制化UITextField对象的风格,可以添加许多不同的重写方法,来改变文本字段的显示行为。这些方法都会返回一个CGRect结构,制定了文本字段每个部件的边界范围,甚至修改placeHolder颜色,字体。
  261.  
  262. textRectForBounds:   //重写来重置文字区域
  263. drawTextInRect:   //改变绘文字属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了.
  264. placeholderRectForBounds:  //重写来重置占位符区域
  265. drawPlaceholderInRect:  //重写改变绘制占位符属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了
  266. borderRectForBounds:  //重写来重置边缘区域
  267. editingRectForBounds:  //重写来重置编辑区域
  268. clearButtonRectForBounds:  //重写来重置clearButton位置,改变size可能导致button的图片失真
  269. leftViewRectForBounds:
  270. rightViewRectForBounds:
  271.  
  272. 通过– drawPlaceholderInRect:方法可改变placeHolder颜色、字体,请看代码:
  273. 首先定义一个类CustomTextField让它继承UITextField实现以下方法即可:
  274. //控制清除按钮的位置
  275. -(CGRect)clearButtonRectForBounds:(CGRect)bounds
  276. {
  277. return CGRectMake(bounds.origin.x + bounds.size.width - , bounds.origin.y + bounds.size.height -, , );
  278. }
  279.  
  280. //控制placeHolder的位置,左右缩20
  281. -(CGRect)placeholderRectForBounds:(CGRect)bounds
  282. {
  283.  
  284. //return CGRectInset(bounds, 20, 0);
  285. CGRect inset = CGRectMake(bounds.origin.x+, bounds.origin.y, bounds.size.width -, bounds.size.height);//更好理解些
  286. return inset;
  287. }
  288. //控制显示文本的位置
  289. -(CGRect)textRectForBounds:(CGRect)bounds
  290. {
  291. //return CGRectInset(bounds, 50, 0);
  292. CGRect inset = CGRectMake(bounds.origin.x+, bounds.origin.y, bounds.size.width -, bounds.size.height);//更好理解些
  293.  
  294. return inset;
  295.  
  296. }
  297. //控制编辑文本的位置
  298. -(CGRect)editingRectForBounds:(CGRect)bounds
  299. {
  300. //return CGRectInset( bounds, 10 , 0 );
  301.  
  302. CGRect inset = CGRectMake(bounds.origin.x +, bounds.origin.y, bounds.size.width -, bounds.size.height);
  303. return inset;
  304. }
  305. //控制左视图位置
  306. - (CGRect)leftViewRectForBounds:(CGRect)bounds
  307. {
  308. CGRect inset = CGRectMake(bounds.origin.x +, bounds.origin.y, bounds.size.width-, bounds.size.height);
  309. return inset;
  310. //return CGRectInset(bounds,50,0);
  311. }
  312.  
  313. //控制placeHolder的颜色、字体
  314. - (void)drawPlaceholderInRect:(CGRect)rect
  315. {
  316. //CGContextRef context = UIGraphicsGetCurrentContext();
  317. //CGContextSetFillColorWithColor(context, [UIColor yellowColor].CGColor);
  318. [[UIColororangeColor] setFill];
  319.  
  320. [[selfplaceholder] drawInRect:rectwithFont:[UIFontsystemFontOfSize:]];
  321. }
  322.  
  323. //下面是使用CustomTextField的代码,可放在viewDidLoad等方法中
  324. _textField = [[CustomTextField alloc] initWithFrame:CGRectMake(, , , )];
  325. _textField.placeholder = @"请输入帐号信息";
  326. _textField.borderStyle = UITextBorderStyleRoundedRect;
  327. _textField.textAlignment = UITextAlignmentLeft;
  328. _textField.delegate = self;
  329. _textField.clearButtonMode = UITextFieldViewModeWhileEditing;
  330. _textField.text = @"aa";
  331. UIImageView *imgv = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon-iwant-2.png"]];
  332. _textField.leftView = imgv;
  333. _textField.leftViewMode = UITextFieldViewModeAlways;
  334. [self.view addSubview:_textField];

UITextField属性及方法说明的更多相关文章

  1. iOS开发之--UITextField属性

    UITextField属性 0.     enablesReturnKeyAutomatically 默认为No,如果设置为Yes,文本框中没有输入任何字符的话,右下角的返回按钮是disabled的. ...

  2. IOS-开发日志-UITextField属性

    UITextField属性 0.     enablesReturnKeyAutomatically 属性 默认为No,如果设置为Yes,文本框中没有输入任何字符的话,右下角的返回按钮是disable ...

  3. 基本控件文档-UITextField属性

    CHENYILONG Blog 基本控件文档-UITextField属性 Fullscreen   UITextField属性技术博客http://www.cnblogs.com/ChenYilong ...

  4. iOS开发UI篇 -- UISearchBar 属性、方法详解及应用(自定义搜索框样式)

    很多APP都会涉及到搜索框,苹果也为我们提供了默认的搜索框UISearchBar.但实际项目中我们通常需要更改系统默认搜索框的样式.为了实现这一目标,我们需要先搞懂 UISearchBar 的属性及方 ...

  5. 基本控件文档-UITextField属性---iOS-Apple苹果官方文档翻译

    本系列所有开发文档翻译链接地址:iOS7开发-Apple苹果iPhone开发Xcode官方文档翻译PDF下载地址 //转载请注明出处--本文永久链接:http://www.cnblogs.com/Ch ...

  6. PHP 面向对象编程和设计模式 (2/5) - 静态变量、属性和方法及延迟绑定

    PHP高级程序设计 学习笔记 2014.06.10 Static(静态)关键字用来定义静态方法和属性,static 也可用于定义静态变量以及后期静态绑定. 1.静态变量 static variable ...

  7. 速战速决 (5) - PHP: 动态地创建属性和方法, 对象的复制, 对象的比较, 加载指定的文件, 自动加载类文件, 命名空间

    [源码下载] 速战速决 (5) - PHP: 动态地创建属性和方法, 对象的复制, 对象的比较, 加载指定的文件, 自动加载类文件, 命名空间 作者:webabcd 介绍速战速决 之 PHP 动态地创 ...

  8. String类型的属性和方法

    × 目录 [1]属性 [2]对象通用方法 [3]访问字符方法[4]字符串拼接[5]创建子串方法[6]大小写转换[7]查找子串位置[8]正则匹配方法[9]去除首尾空格[10]字符串比较 前面的话 前面已 ...

  9. python 类属性与方法

    Python 类属性与方法 标签(空格分隔): Python Python的访问限制 Python支持面向对象,其对属性的权限控制通过属性名来实现,如果一个属性有双下划线开头(__),该属性就无法被外 ...

随机推荐

  1. Vue.js——60分钟快速入门(转)

    vue:Vue.js——60分钟快速入门 <!doctype html> <html lang="en"> <head> <meta ch ...

  2. Eggjs 设置跨域请求

    1. 安装egg-cors npm install egg-cors --save 2.打开config/plugin.js exports.cors: { enable: true, package ...

  3. 学习mysql,记录下常用的命令行语句

    MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用 ...

  4. 依赖注入框架Ninject

    为什么需要依赖注入 我们提到MVC的一个重要特征是关注点分离(separation of concerns).我们希望应用程序的各部分组件尽可能多的相互独立.尽可能少的相互依赖. 我们的理想情况是:一 ...

  5. mysql 循环、游标

    mysql 循环只能在存储过程.代码记录 CREATE DEFINER=`front`@`%` PROCEDURE `a_1`() BEGIN -- 声明变量,接收游标循环变量 DECLARE _co ...

  6. gevent模块学习(二)

    2. Queue类,常用用于Greenlet之间的异步共享 q = gevent.queue.Queue(maxsize=None, items=None) -> Queue 说明: 创建一个指 ...

  7. flex布局设置width无效

    子元素设置 : flex: 0 0 85px; 参数: flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto.后两个属性可选. 该属性有 ...

  8. python web 2

    思路整理 过程:请求豆瓣电影 top 250 url='https://movie.douban.com/' 结果:得到网页的html 源码 (保存为hml文件 就可以用浏览器打开) 提示: Loca ...

  9. 初学python之感悟

    python的强大有目共睹,现将初学python,觉得其中比较重要的知识罗列如下: 类似于数组的东西:列表.元组.集合.字符串以及字典,这几个东西充分体现了python的强大和逆天. 列表: x=[1 ...

  10. 常用正则表达式 c#

    /// <summary> /// 是否手机号 /// </summary> /// <param name="str"></param& ...