iOS App开发中UITextField组件的常用属性小结
重点属性
在 xcode 中使用 ib 给视图拖上去一个文本框后,选中文本框,可以在attribute inspector中设置其各种属性。
attribute inspector 分为三部分,分别是 text field、control 和 view 部分。我们重点看看 text field 部分。
text field 部分有以下选项:
1、text :设置文本框的默认文本。
2、placeholder : 可以在文本框中显示灰色的字,用于提示用户应该在这个文本框输入什么内容。当这个文本框中输入了数据时,用于提示的灰色的字将会自动消失。
3、background :
4、disabled : 若选中此项,用户将不能更改文本框内容。
5、接下来是三个按钮,用来设置对齐方式。
6、border style : 选择边界风格。
7、clear button : 这是一个下拉菜单,你可以选择清除按钮什么时候出现,所谓清除按钮就是出一个现在文本框右边的小 x ,你可以有以下选择:
7.1 never appears : 从不出现
7.2 appears while editing : 编辑时出现
7.3 appears unless editing :
7.4 is always visible : 总是可见
8、clear when editing begins : 若选中此项,则当开始编辑这个文本框时,文本框中之前的内容会被清除掉。比如,你现在这个文本框 a 中输入了 "what" ,之后去编辑文本框 b,若再回来编辑文本框 a ,则其中的 "what" 会被立即清除。
9、text color : 设置文本框中文本的颜色。
10、font : 设置文本的字体与字号。
11、min font size : 设置文本框可以显示的最小字体(不过我感觉没什么用)
12、adjust to fit : 指定当文本框尺寸减小时,文本框中的文本是否也要缩小。选择它,可以使得全部文本都可见,即使文本很长。但是这个选项要跟 min font size 配合使用,文本再缩小,也不会小于设定的 min font size 。
接下来的部分用于设置键盘如何显示。
13、captitalization : 设置大写。下拉菜单中有四个选项:
13.1 none : 不设置大写
13.2 words : 每个单词首字母大写,这里的单词指的是以空格分开的字符串
13.3 sentances : 每个句子的第一个字母大写,这里的句子是以句号加空格分开的字符串
13.4 all characters : 所以字母大写
14、correction : 检查拼写,默认是 yes 。
15、keyboard : 选择键盘类型,比如全数字、字母和数字等。
16、appearance:
17、return key : 选择返回键,可以选择 search 、 return 、 done 等。
18、auto-enable return key : 如选择此项,则只有至少在文本框输入一个字符后键盘的返回键才有效。
19、secure : 当你的文本框用作密码输入框时,可以选择这个选项,此时,字符显示为星号。
技巧
下面来说两个小技巧:
一、uitextfield隐藏键盘
1.点击键盘的return来隐藏键盘
这个方法需要在相应的.h文件文件中实现uitextfielddelegate协议。并在.m文件中添加如下方法
- (bool)textfieldshouldreturn:(uitextfield *)textfield
{
[textfield resignfirstresponder];
return yes;
}
2.点击界面空白处来隐藏键盘
这个方法的实现主要是给当前的view增加点击事件,并未点击事件增加相应的处理方法,此处是为了隐藏键盘,所以我们可以在点击事件对应的方法中让uitextfield放弃第一响应者。
- (void)dismisskeyboard
{
nsarray *subviews = [self.view subviews];
for (id inputtext in subviews) {
if ([inputtext iskindofclass:[uitextfield class]]) {
if ([inputtext isfirstresponder]) {
[inputtext resignfirstresponder];
}
}
}
}
为当前的view增加点击事件
uitapgesturerecognizer *dismisskeyboardtap = [[uitapgesturerecognizer alloc] initwithtarget:self action:@selector(dismisskeyboard)];
[self.view addgesturerecognizer: dismisskeyboardtap];
二、为内容增加校验
- (bool)textfieldshouldendediting:(uitextfield *)textfield
{
switch (textfield.tag) {
case 100://name
{
nslog(@"this is namefield");
//添加校验name的代码
break;
}
case 101://phone
{
nslog(@"this is phonefield");
//添加校验phone的代码
break;
}
case 102://email
{
nslog(@"this is emailfield");
//添加校验email的代码
break;
}
default:
break;
}
return yes;
}