文档章节

iOS开发之UITextField

code_free
 code_free
发布于 2014/07/21 11:03
字数 478
阅读 621
收藏 1

UITextField展示的是一些可编辑的内容,并且与用户有一些交互。比如当你在虚拟键盘上按下return键时,一般会关联到键盘隐藏事件上。UITextField的一些状态大多在UITextFieldDelegate协议中有相应的方法。

####UITextField的初始化及一些属性####

//姓名输入域
UITextField *nameField = [[UITextField alloc] initWithFrame:CGRectMake(30, 30, 200, 44)];
nameField.tag = 100;
nameField.delegate = self;
    //默认文字
    nameField.placeholder = @"name";
    nameField.font = [UIFont systemFontOfSize:16.0f];
    nameField.textColor = [UIColor blackColor];
    //输入框的背景图片(还可以选择设置背景颜色)
    nameField.background = [UIImage imageNamed:@"textFieldBackgroundImage"];
    //nameField.backgroundColor = [UIColor lightGrayColor];
    //清除按钮
    nameField.clearButtonMode = UITextFieldViewModeAlways;
    //键盘类型
    nameField.keyboardType = UIKeyboardTypeDefault;
    [self.view addSubview:nameField];
    电话输入域
    UITextField *phoneField = [[UITextField alloc] initWithFrame:CGRectMake(30, nameField.frame.origin.y + nameField.bounds.size.height+10, 200, 44)];
    phoneField.tag = 101;
    phoneField.delegate = self;
    phoneField.placeholder = @"phone";
    phoneField.keyboardType = UIKeyboardTypeDecimalPad;
    phoneField.clearButtonMode = UITextFieldViewModeAlways;
    [self.view addSubview:phoneField];
    //邮箱输入域
    UITextField *emailField = [[UITextField alloc] initWithFrame:CGRectMake(30, phoneField.frame.origin.y + phoneField.bounds.size.height + 10, 200, 44)];
    emailField.tag = 102;
    emailField.delegate = self;
    emailField.placeholder = @"email";
    emailField.keyboardType = UIKeyboardTypeEmailAddress;
    emailField.clearButtonMode = UITextFieldViewModeAlways;
    [self.view addSubview:emailField];	
	

####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];

####UITextField--为内容增加校验####

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

© 著作权归作者所有

共有 人打赏支持
上一篇: Spring--JdbcTemplate
下一篇: iOS开发之UILabel
code_free
粉丝 1
博文 67
码字总数 1227
作品 0
济南
程序员
私信 提问
iOS开发需要了解的基础内容链接整理

https://llvm.org/svn/llvm-project/cfe/trunk/test/SemaObjC/builtinobjcnslog.m http://llvm.org/klaus/clang/commit/5faf5d31fa634e1fdb576c4d9708cd4efa5ea310/ 对Objective-C的NSObjec......

智能小松鼠
2015/01/14
0
2
UITextField 文本字段控件-IOS开发

进入本文之前建议你认真读一读我的另一篇博文:《UIControl IOS控件编程—IOS开发》http://blog.csdn.net/iukey/article/details/7300412 这样会起到事半功倍效果。 再就是用到UITextField,...

junwong
2012/03/05
1K
1
【非凡程序员】 OC第十六节课 初识IOS开发一(字符串转换与计算器)

IOS开发其实和OS X差不多,只不过输出的方法不一样,OS X是setstringvale,而IOS是settext (或者使用点语法.text) ViewController.h文件 #import <UIKit/UIKit.h> @interface ViewControl...

七月流火zsp
2015/06/11
0
0
Xamarin iOS教程之键盘的使用和设置

Xamarin iOS教程之键盘的使用和设置 Xamarin iOS使用键盘 在文本框和文本视图中可以看到,当用户在触摸这些视图后,就会弹出键盘。本节将主要讲解键盘的输入类型定义、显示键盘时改变输入视图...

大学霸
2015/06/19
0
0
[转]设置 UILabel 和 UITextField 的 Padding 或 Insets

iOS 的控件,只看到 UIButton 可以设置 Padding/Insets,即按钮上文字或图片与按钮边界的间隙,对与 CSS 来说叫做 Padding,在 iOS 中叫做 Insets,UIButton 设置 Insets 相应的属性如下: ...

MrMign
2012/03/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

rabbitmq安装教程

RabbitMQ有Windows与Linux版本的,这里先写Windows版本的安装。 以前安装软件总是在百度上找某某安装教程,结果能按照教程安装好的软件真的不多。想起先前以为大牛说的一句话,去官网按照官网...

em_aaron
今天
6
0
Android 贝塞尔曲线实践——波浪式运动

一、波浪效果如下 贝塞尔曲线自定义波浪效果的案例很多,同样方法也很简单,大多数和本案例一样使用二次贝塞尔曲线实现,同样还有一种是PathMeasure的方式,这里我们后续补充,先来看贝塞尔曲...

IamOkay
今天
3
0
Nmap之防火墙/IDS逃逸

选项 解释 -f 报文分段 --mtu 指定偏移大小 -D IP欺骗 -sI 原地址欺骗 --source-port 源端口欺骗 --data-length 指定发包长度 --randomize-hosts 目标主机随机排序 --spoof-mac Mac地址欺骗 ...

Frost729
今天
2
0
带你搭一个SpringBoot+SpringData JPA的环境

不知道大家对SpringBoot和Spring Data JPA了解多少,如果你已经学过Spring和Hibernate的话,那么SpringBoot和SpringData JPA可以分分钟上手的。 其实我在学完SpringBoot和SpringData JPA了之...

java菜分享
今天
7
0
Chocolatey 在Window搭建一个开发环境

在看了(利用 Chocolatey 快速在 Windows 下搭建一个开发环境)后,准备从零开始 一、准备工作 1、用管理员权限启动:powershell,执行错误请参考(PowerShell因为在此系统中禁止执行脚本的解...

近在咫尺远在天涯
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部