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

 更新时间:2016年04月15日 09:17:22   作者:双子座  
这篇文章主要介绍了iOS App开发中UITextField组件的常用属性小结,文中还介绍了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;
}

 

相关文章

  • iOS中利用CoreAnimation实现一个时间的进度条效果

    iOS中利用CoreAnimation实现一个时间的进度条效果

    在iOS中实现进度条通常都是通过不停的设置progress来完成的,这样的进度条适用于网络加载(上传下载文件、图片等)。下面通过本文给大家介绍iOS中利用CoreAnimation实现一个时间的进度条,需要的的朋友参考下吧
    2017-09-09
  • iOS应用程序中通过dispatch队列控制线程执行的方法

    iOS应用程序中通过dispatch队列控制线程执行的方法

    Grand Central Dispatch简称(GCD)是苹果公司开发的技术,以优化的应用程序支持多核心处理器和其他的对称多处理系统的系统,iOS应用程序中通过dispatch队列控制线程执行则是以并发来达到多核优化的重要途径.
    2016-05-05
  • Objective-C处理空字符串和页面传值及自定义拷贝

    Objective-C处理空字符串和页面传值及自定义拷贝

    这篇文章主要介绍了Objective-C处理空字符串和页面传值及自定义拷贝的相关方法,在iOS应用项目开发中经常会用到,需要的朋友可以参考下
    2016-01-01
  • 探究iOS多线程究竟不安全在哪里?

    探究iOS多线程究竟不安全在哪里?

    iOS多线程安全的概念在很多地方都会遇到,为什么不安全,不安全又该怎么去定义,其实是个值得深究的话题。那么通过下面这篇文章小编和大家一起来探究了iOS多线程究竟不安全在哪里?需要的朋友可以参考学习。
    2017-02-02
  • 如何利用FutureBuilder提高开发效率

    如何利用FutureBuilder提高开发效率

    这篇文章主要给大家介绍了关于如何利用FutureBuilder提高开发效率的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • iOS实现UITableView数据为空时的提示页面

    iOS实现UITableView数据为空时的提示页面

    最近工作中遇到一个需求,当UITableView数据为空的时候,给出一个简单的提示页面,通过从网上查找解决的方法,发现了两种实现的方法,现在分享给大家,有需要的朋友们可以参考借鉴,下面感兴趣的朋友们来一起学习学习吧。
    2016-11-11
  • iOS应用开发中UIScrollView滚动视图的基本用法总结

    iOS应用开发中UIScrollView滚动视图的基本用法总结

    这篇文章主要介绍了iOS应用开发中UIScrollView滚动视图的基本用法总结,作者还介绍了重写UIScrollView中的hitTest方法来解决长按的事件问题,需要的朋友可以参考下
    2016-02-02
  • 详解IOS四种保存数据的方式

    详解IOS四种保存数据的方式

    本篇文章主要介绍了OS四种保存数据的方式,现在分享给大家,也给大家做个参考。感兴趣的小伙伴们可以参考一下。
    2016-11-11
  • 解决Xcode8打包上传构建版本无效的办法

    解决Xcode8打包上传构建版本无效的办法

    这篇文章主要介绍的是自己在打包上传项目的时候遇到的一个问题,通过自己的努力一步步解决了,现将解决方法方法分享给大家,希望给同样遇到这个问题的朋友们能有所帮助,下面来一起看看吧。
    2016-09-09
  • iOS如何获取当前View所在控制器的方法

    iOS如何获取当前View所在控制器的方法

    在开发iOS的时候经常需要获取当前View所在的控制器,下面小编给大家分享个方法,文章给出了示例代码,对大家的学习和理解很有帮助,下面来一起看看吧。
    2016-09-09

最新评论