博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发之UITextField
阅读量:6884 次
发布时间:2019-06-27

本文共 3004 字,大约阅读时间需要 10 分钟。

hot3.png

展示的是一些可编辑的内容,并且与用户有一些交互。比如当你在虚拟键盘上按下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;}

转载于:https://my.oschina.net/yulei1943/blog/293201

你可能感兴趣的文章
决心书
查看>>
文档查看cat_more_less_head_tail
查看>>
Weave常见问题集合-yellowcong
查看>>
Linux学习总结(三十九)lnmp环境搭建1-mysql,php 安装
查看>>
Travis CI用来持续集成你的项目
查看>>
区块链应用,成就不一样的保险行业
查看>>
磁盘的读写原理
查看>>
find命令的详细解析
查看>>
No.3 Linux计划任务
查看>>
could not read ok from ADB Server * failed to start daemon * error: cannot connect to daemon
查看>>
Linux20180421五周第二次课(4月19日)
查看>>
EYOU 文章列表如何调用自定义字段
查看>>
http请求头,响应头字段
查看>>
tomcat下web.xml文件修改后工程重启的原因
查看>>
学习大数据掌握这几个方法可轻松入门
查看>>
资源的有限性与任务的复杂性之间的矛盾
查看>>
Java动态规划策略原理及例题
查看>>
Socket一般步骤
查看>>
微信小程序斩获世界大奖后,中小企业怎样搭上这辆快速列车?
查看>>
10大Python开源项目推荐
查看>>