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.2while 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的结构,我们先来看看这个结构图 --------------------------------------------- ...
随机推荐
- 站点 1访问非本站点下面的web.config文件需要的权限
站点1网站权限,这里就不多介绍了. web.config文件权限 : 需要iis_iusrs (iis权限), 否则没办法访问到
- CentOS 6.6下安装OpenOffice4.0
最近由于项目需要,要在公司服务器上安装Openoffice,网上搜了一些资料后成功安装,现分享给大家. 1.首先先下载好需要的rpm包:Apache_OpenOffice_4.0.0_Linux_x8 ...
- Appium + Python App自动化(2)第一个脚本
[1]打开你的夜神模拟器(或者连接你的手机) [2]打开桌面的Appium [3]下载你要测的App的apk文件,放到桌面 [4]拖动你的apk安装包到夜神模拟器里,然后模拟器会提示你安装.安装.原来 ...
- 【angularJS】Filter 过滤器
当从后台获取到的数据呈现到视图上时,此时可能需要对数据进行相应的转换,此时我们可以通过过滤器在不同页面进行不同数据的格式抓换,在AngularJS中有常见默认的过滤器,当然若不满足所需,我们可以自定义 ...
- web.xml中配置classpath:和classpath*:的区别和意思
首先 classpath是指 WEB-INF文件夹下的classes目录 解释classes含义: 1.存放各种资源配置文件 eg.init.properties log4j.properties s ...
- 最最基本的SQL常用命令
2015-12-01 18:08:52 1.启动/关闭mysql 开始菜单搜索cmd,右击,以管理员身份运行,输入net start mysql启动mysql,输入net stop mysql关闭my ...
- wdlinux重新编译nginx
背景: 由于web站点需要换主机,并且切换环境. 站点需要做反相代理(nginx),主机从美国迁移到香港[考虑到速度问题,为什么不用大陆阿里云ECS服务器?几十个域名备案麻烦,还有阿里云内地没有多ip ...
- Zookeeper--集群管理
Zookeeper--集群管理 在多台服务器组成的集群中,需要监控每台服务器的状态,一旦某台服务器挂掉了或有新的机器加入集群,集群都要感知到,从而采取相应的措施.一个主动的集群可以自动感知节点的死亡和 ...
- Hibernate学习10——Hibernate 查询方式
本章主要是以查询Student的例子: Student.java: package com.cy.model; public class Student { private int id; priva ...
- 安装scikit-image问题
参考地址: Image Processing Using Python https://code.tutsplus.com/tutorials/image-processing-using-pytho ...