iOS开发基础控件--UITextField
001 |
//初始化textfield并设置位置及大小 |
002 |
UITextField |
003 |
|
004 |
//设置边框样式,只有设置了才会显示边框样式 |
005 |
text.borderStyle |
006 |
typedef enum { |
007 |
UITextBorderStyleNone, |
008 |
UITextBorderStyleLine, |
009 |
UITextBorderStyleBezel, |
010 |
UITextBorderStyleRoundedRect |
011 |
} |
012 |
|
013 |
//设置输入框的背景颜色,此时设置为白色 |
014 |
|
015 |
|
016 |
//设置背景 |
017 |
text.background "dd.png" ]; |
018 |
|
019 |
//设置背景 |
020 |
text.disabledBackground "cc.png" ]; |
021 |
//当输入框没有内容时,水印提示 |
022 |
text.placeholder "password" ; |
023 |
|
024 |
//设置输入框内容的字体样式和大小 |
025 |
text.font "Arial" size:20.0f]; |
026 |
|
027 |
//设置字体颜色 |
028 |
text.textColor |
029 |
|
030 |
//输入框中是否有个叉号,在什么时候显示,用于一次性删除输入框中的内容 |
031 |
text.clearButtonMode |
032 |
|
033 |
typedef enum { |
034 |
UITextFieldViewModeNever, 重不出现 |
035 |
UITextFieldViewModeWhileEditing, |
036 |
UITextFieldViewModeUnlessEditing, 除了编辑外都出现 |
037 |
UITextFieldViewModeAlways |
038 |
} |
039 |
|
040 |
//输入框中一开始就有的文字 |
041 |
text.text "一开始就在输入框的文字" ; |
042 |
|
043 |
//每输入一个字符就变成点 |
044 |
text.secureTextEntry |
045 |
|
046 |
//是否纠错 |
047 |
text.autocorrectionType |
048 |
|
049 |
typedef enum { |
050 |
UITextAutocorrectionTypeDefault, |
051 |
UITextAutocorrectionTypeNo, |
052 |
UITextAutocorrectionTypeYes, 自动纠错 |
053 |
} |
054 |
|
055 |
//再次编辑就清空 |
056 |
text.clearsOnBeginEditing |
057 |
|
058 |
//内容对齐方式 |
059 |
text.textAlignment |
060 |
|
061 |
//内容的垂直对齐方式 |
062 |
text.contentVerticalAlignment |
063 |
|
064 |
//设置为YES时文本会自动缩小以适应文本窗口大小.默认是保持原来大小,而让长文本滚动 |
065 |
textFied.adjustsFontSizeToFitWidth |
066 |
|
067 |
//设置自动缩小显示的最小字体大小 |
068 |
text.minimumFontSize |
069 |
|
070 |
//设置键盘的样式 |
071 |
text.keyboardType |
072 |
|
073 |
typedef enum { |
074 |
UIKeyboardTypeDefault, |
075 |
UIKeyboardTypeASCIICapable, 支持ASCII的默认键盘 |
076 |
UIKeyboardTypeNumbersAndPunctuation, 标准电话键盘,支持+*#字符 |
077 |
UIKeyboardTypeURL, |
078 |
UIKeyboardTypeNumberPad, |
079 |
UIKeyboardTypePhonePad, |
080 |
UIKeyboardTypeNamePhonePad, |
081 |
UIKeyboardTypeEmailAddress, |
082 |
UIKeyboardTypeDecimalPad, |
083 |
UIKeyboardTypeTwitter, |
084 |
UIKeyboardTypeAlphabet |
085 |
} |
086 |
|
087 |
//首字母是否大写 |
088 |
text.autocapitalizationType |
089 |
|
090 |
typedef enum { |
091 |
UITextAutocapitalizationTypeNone, |
092 |
UITextAutocapitalizationTypeWords, 单词首字母大写 |
093 |
UITextAutocapitalizationTypeSentences, 句子的首字母大写 |
094 |
UITextAutocapitalizationTypeAllCharacters, |
095 |
} |
096 |
|
097 |
//return键变成什么键 |
098 |
text.returnKeyType |
099 |
|
100 |
typedef enum { |
101 |
UIReturnKeyDefault, |
102 |
UIReturnKeyGo, |
103 |
UIReturnKeyGoogle,标有Google的蓝色按钮,用语搜索 |
104 |
UIReturnKeyJoin,标有Join的蓝色按钮 |
105 |
UIReturnKeyNext,标有Next的蓝色按钮 |
106 |
UIReturnKeyRoute,标有Route的蓝色按钮 |
107 |
UIReturnKeySearch,标有Search的蓝色按钮 |
108 |
UIReturnKeySend,标有Send的蓝色按钮 |
109 |
UIReturnKeyYahoo,标有Yahoo的蓝色按钮 |
110 |
UIReturnKeyYahoo,标有Yahoo的蓝色按钮 |
111 |
UIReturnKeyEmergencyCall, |
112 |
} |
113 |
|
114 |
//键盘外观 |
115 |
textView.keyboardAppearance=UIKeyboardAppearanceDefault; |
116 |
typedef enum { |
117 |
UIKeyboardAppearanceDefault, |
118 |
UIKeyboardAppearanceAlert, |
119 |
|
120 |
} |
121 |
|
122 |
|
123 |
//设置代理 |
124 |
text.delegate |
125 |
|
126 |
//把textfield加到视图中 |
127 |
[self.window |
128 |
|
129 |
//最右侧加图片是以下代码 |
130 |
UIImageView "right.png" ]]; |
131 |
text.rightView=image; |
132 |
text.rightViewMode |
133 |
|
134 |
typedef enum { |
135 |
UITextFieldViewModeNever, |
136 |
UITextFieldViewModeWhileEditing, |
137 |
UITextFieldViewModeUnlessEditing, |
138 |
UITextFieldViewModeAlways |
139 |
} |
140 |
|
141 |
|
142 |
//按return键键盘往下收 |
143 |
|
144 |
类要采用UITextFieldDelegate协议 |
145 |
|
146 |
text.delegate |
147 |
|
148 |
- BOOL )textFieldShouldReturn:(UITextField |
149 |
{ |
150 |
[text //主要是[receiver |
151 |
return YES; |
152 |
} |
153 |
|
154 |
|
155 |
重写绘制行为 |
156 |
除了UITextField对象的风格选项,你还可以定制化UITextField对象,为他添加许多不同的重写方法,来改变文本字段的显示行为。这些方法都会返回一个CGRect结构,制定了文本字段每个部件的边界范围。以下方法都可以重写。 |
157 |
|
158 |
– //重写来重置文字区域 |
159 |
– //改变绘文字属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了. |
160 |
– //重写来重置占位符区域 |
161 |
– //重写改变绘制占位符属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了. |
162 |
– //重写来重置边缘区域 |
163 |
– //重写来重置编辑区域 |
164 |
– //重写来重置clearButton位置,改变size可能导致button的图片失真 |
165 |
– |
166 |
– |
167 |
|
168 |
委托方法 |
169 |
|
170 |
- BOOL )textFieldShouldBeginEditing:(UITextField |
171 |
|
172 |
//返回一个BOOL值,指定是否循序文本字段开始编辑 |
173 |
|
174 |
return YES; |
175 |
} |
176 |
|
177 |
- void )textFieldDidBeginEditing:(UITextField |
178 |
//开始编辑时触发,文本字段将成为first |
179 |
} |
180 |
|
181 |
- BOOL )textFieldShouldEndEditing:(UITextField |
182 |
//返回BOOL值,指定是否允许文本字段结束编辑,当编辑结束,文本字段会让出first |
183 |
//要想在用户结束编辑时阻止文本字段消失,可以返回NO |
184 |
//这对一些文本字段必须始终保持活跃状态的程序很有用,比如即时消息 |
185 |
|
186 |
return NO; |
187 |
} |
188 |
|
189 |
- BOOL )textField:(UITextField*)textField |
190 |
//当用户使用自动更正功能,把输入的文字修改为推荐的文字时,就会调用这个方法。 |
191 |
//这对于想要加入撤销选项的应用程序特别有用 |
192 |
//可以跟踪字段内所做的最后一次修改,也可以对所有编辑做日志记录,用作审计用途。 |
193 |
//要防止文字被改变可以返回NO |
194 |
//这个方法的参数中有一个NSRange对象,指明了被改变文字的位置,建议修改的文本也在其中 |
195 |
|
196 |
return YES; |
197 |
} |
198 |
|
199 |
- BOOL )textFieldShouldClear:(UITextField |
200 |
|
201 |
//返回一个BOOL值指明是否允许根据用户请求清除内容 |
202 |
//可以设置在特定条件下才允许清除内容 |
203 |
|
204 |
return YES; |
205 |
} |
206 |
|
207 |
-( BOOL )textFieldShouldReturn:(UITextField |
208 |
|
209 |
//返回一个BOOL值,指明是否允许在按下回车键时结束编辑 |
210 |
//如果允许要调用resignFirstResponder |
211 |
//查一下resign这个单词的意思就明白这个方法了 |
212 |
return YES; |
213 |
} |
214 |
|
215 |
|
216 |
|
217 |
通知 |
218 |
UITextField派生自UIControl,所以UIControl类中的通知系统在文本字段中也可以使用。除了UIControl类的标准事件,你还可以使用下列UITextField类特有的事件 |
219 |
|
220 |
UITextFieldTextDidBeginEditingNotification |
221 |
UITextFieldTextDidChangeNotification |
222 |
UITextFieldTextDidEndEditingNotification |
223 |
当文本字段退出编辑模式时触发。通知的object属性存储了最终文本。 |
224 |
|
225 |
因为文本字段要使用键盘输入文字,所以下面这些事件发生时,也会发送动作通知 |
226 |
|
227 |
UIKeyboardWillShowNotification //键盘显示之前发送 |
228 |
UIKeyboardDidShowNotification //键盘显示之后发送 |
229 |
UIKeyboardWillHideNotification //键盘隐藏之前发送 |
230 |
UIKeyboardDidHideNotification //键盘隐藏之后发送 |
231 |
232 |
1、Text |
233 |
2、Placeholder |
234 |
3、Background |
235 |
4、Disabled |
236 |
5、接下来是三个按钮,用来设置对齐方式。 |
237 |
6、Border |
238 |
7、Clear |
239 |
7.1 |
240 |
7.2 while editing |
241 |
7.3 |
242 |
7.4 |
243 |
8、Clear "What" ,之后去编辑文本框 "What" 会被立即清除。 |
244 |
9、Text |
245 |
10、Font |
246 |
11、Min |
247 |
12、Adjust |
248 |
接下来的部分用于设置键盘如何显示。 |
249 |
13、Captitalization |
250 |
13.1 |
251 |
13.2 |
252 |
13.3 |
253 |
13.4 |
254 |
14、Correction |
255 |
15、Keyboard |
256 |
16、Appearance: |
257 |
17、Return |
258 |
18、Auto-enable |
259 |
19、Secure |
260 |
261 |
|
262 |
1.Alignment |
263 |
2.Alignment |
264 |
3.用于返回一个 BOOL 值 输入框是否 |
265 |
|
266 |
限制只能输入特定的字符 |
267 |
|
268 |
( BOOL )textField:(UITextField |
269 |
NSCharacterSet |
270 |
cs |
271 |
|
272 |
NSString "" ]; //按cs分离出数组,数组按@""分离出字符串 |
273 |
|
274 |
BOOL canChange |
275 |
|
276 |
return canChange; |
277 |
} |
278 |
|
279 |
上面那个NUMBERS是一个宏,可以在文件顶部定义: |
280 |
#define |
281 |
所以,如果你要限制输入英文和数字的话,就可以把这个定义为: |
282 |
#define |
283 |
当然,你还可以在以上方法 return 之前,做一提示的,比如提示用户只能输入数字之类的。如果你觉得有需要的话。 |
284 |
|
285 |
限制只能输入一定长度的字符 |
286 |
|
287 |
- BOOL )textField:(UITextField |
288 |
{ //string就是此时输入的那个字符 |
289 |
|
290 |
if ([string "n" ]) //按会车可以改变 |
291 |
{ |
292 |
return YES; |
293 |
} |
294 |
|
295 |
NSString //得到输入框的内容 |
296 |
|
297 |
if (self.myTextField //判断是否时我们想要限定的那个输入框 |
298 |
{ |
299 |
if ([toBeString //如果输入框内容大于20则弹出警告 |
300 |
textField.text |
301 |
UIAlertView "超过最大字数不能输入了" delegate:nil "Ok" otherButtonTitles:nil, |
302 |
[alert |
303 |
return NO; |
304 |
} |
305 |
} |
306 |
return YES; |
307 |
} |
iOS开发基础控件--UITextField的更多相关文章
- iOS开发基础控件--UISegmentedControl
UISegmentedControl全局外观设置 分段控件是我们常用的控件之一,今天把具体用法总结了下: 1.初始化UISegmentedControl [plain] view plaincopy ...
- iOS开发基础控件--UIButton
01 //这里创建一个圆角矩形的按钮 02 UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 03 ...
- iOS开发基础控件--UILabel
UILabel 的常见属性和方法: //创建UIlabel对象 UILabel* label = [[UILabel alloc] initWithFrame:self.view.bounds]; / ...
- IOS(一) 基础控件的介绍以及使用
IOS的界面的制作,相对于Android来说 简洁了很多,虽然创建布局的方式都是两种(代码创建.布局文件) 但是Android中的xml布局文件在某些方面也属于代码创建,因为自己使用到得每一个属性 都 ...
- 【ios开发】控件细究1:UITableView
工作了将近两个月,共接手两个项目,在项目中用的最多的就是UITableView了,但是也是问题出现的最多的地方,由于一开始不熟练,导致很多问题花了很长时间才解决.所以利用这两天空闲时间,好好梳理一下这 ...
- iOS开发-DatePicker控件
时间控件不管是Android还是iOS中都是必然存在的一个控件,具体的效果大同小异,显示日期,时间,iOS中有四种方式可以选择,Time, Date,Date and Time , Count Do ...
- IOS开发之控件篇UINavigationController第一章 - 介绍
UINavigationController是一个比较常见的控件,它连接个视图,例如一个视图走到另外一个视图,之间的联系都可以用这个NavigationController的方法 一般都会由两个部分组 ...
- IOS开发之控件篇UICollectionViewControllor第一章 - 普通介绍
1.介绍 UICollectionView和UICollectionViewControllor是IOS6.0后引入的新控件 使用UICollectionView必须实现三个接口: UICollect ...
- IOS开发之控件篇UITabBarControllor第一章 - 介绍
UITabBarControllor的基本样子 官方有个图介绍这个TabBar的结构,我们先来看看这个结构图 --------------------------------------------- ...
随机推荐
- (笔记)JQuery扩展方法实现Form表单与Json互相转换
JQuery笔记 记两段代码,使用JQuery实现从表单获取json与后端交互,以及把后端返回的json映射到表单相应的字段上. 把表单转换出json对象 //把表单转换出json对象 $.fn.to ...
- CentOS 6.6下安装OpenOffice4.0
最近由于项目需要,要在公司服务器上安装Openoffice,网上搜了一些资料后成功安装,现分享给大家. 1.首先先下载好需要的rpm包:Apache_OpenOffice_4.0.0_Linux_x8 ...
- Java 按行拆分txt
T028619630|@|聚二零|@|M|@|1983-01-01|@|0|@|110101198301010098|@||@||@||@|湖南省衡阳市耒阳市蔡伦步行街1005号302|@|42100 ...
- 【requirejs】JS模块化工具requirejs教程
初识requirejs 随着网站功能逐渐丰富,网页中的js也变得越来越复杂和臃肿,原有通过script标签来导入一个个的js文件这种方式已经不能满足现在互联网开发模式,我们需要团队协作.模块复用.单元 ...
- ubuntu 12.04 下 Vim 插件 YouCompleteMe 的安装
作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4137402.html 1.需要保证vim的版本大于7.3.584,否则的话需要更新vim 可 ...
- undefined vs. null
undefined vs. null 一.相似性 在JavaScript中,将一个变量赋值为undefined或null,老实说,几乎没区别. var a = undefined; var a = n ...
- Kossel的一种滑块位置计算方法
做了一个小激光雕刻机之后,研究了一下这款3D打印机的结构和工作原理,一下就对这个运动过程很感兴趣,这三个杆是怎么联动使得喷头保持在一个平面上运动呢?打算先做一个架构,然后把激光器放在上面不是可以方便雕 ...
- 与FPGA相关的独热码
独热码在状态机里面使用比价广泛,这一块有些人爱用,有些人嫌烦,有时候可以用用格雷码跳转,不过格雷码只支持那种一步到底的,中间有分支就不好做了,所以后来还是回到了独热码的正道上. 说白了独热码的使用,在 ...
- jmeter数据关联_后置处理器_正则表达式提取器
- 杂项:大数据 (巨量数据集合(IT行业术语))
ylbtech-杂项:大数据 (巨量数据集合(IT行业术语)) 大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合,是需要新处理模式才能具有更强的决策力.洞 ...