欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

iOS App开发中UITextField组件的常用属性小结

程序员文章站 2023-12-10 21:59:10
重点属性 在 xcode 中使用 ib 给视图拖上去一个文本框后,选中文本框,可以在attribute inspector中设置其各种属性。 attribute ins...

重点属性

在 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;
}