iOS开发之UITextField

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

UITextField的初始化及一些属性

  1. //姓名输入域 
  2. UITextField *nameField = [[UITextField alloc] initWithFrame:CGRectMake(303020044)]; 
  3. nameField.tag = 100
  4. nameField.delegate = self; 
  5.     //默认文字 
  6.     nameField.placeholder = @"name"
  7.     nameField.font = [UIFont systemFontOfSize:16.0f]; 
  8.     nameField.textColor = [UIColor blackColor]; 
  9.     //输入框的背景图片(还可以选择设置背景颜色) 
  10.     nameField.background = [UIImage imageNamed:@"textFieldBackgroundImage"]; 
  11.     //nameField.backgroundColor = [UIColor lightGrayColor]; 
  12.     //清除按钮 
  13.     nameField.clearButtonMode = UITextFieldViewModeAlways; 
  14.     //键盘类型 
  15.     nameField.keyboardType = UIKeyboardTypeDefault; 
  16.     [self.view addSubview:nameField]; 
  17.     电话输入域 
  18.     UITextField *phoneField = [[UITextField alloc] initWithFrame:CGRectMake(30, nameField.frame.origin.y + nameField.bounds.size.height+1020044)]; 
  19.     phoneField.tag = 101
  20.     phoneField.delegate = self; 
  21.     phoneField.placeholder = @"phone"
  22.     phoneField.keyboardType = UIKeyboardTypeDecimalPad; 
  23.     phoneField.clearButtonMode = UITextFieldViewModeAlways; 
  24.     [self.view addSubview:phoneField]; 
  25.     //邮箱输入域 
  26.     UITextField *emailField = [[UITextField alloc] initWithFrame:CGRectMake(30, phoneField.frame.origin.y + phoneField.bounds.size.height + 1020044)]; 
  27.     emailField.tag = 102
  28.     emailField.delegate = self; 
  29.     emailField.placeholder = @"email"
  30.     emailField.keyboardType = UIKeyboardTypeEmailAddress; 
  31.     emailField.clearButtonMode = UITextFieldViewModeAlways; 
  32.     [self.view addSubview:emailField]; 

UITextField隐藏键盘

1.点击键盘的return来隐藏键盘

这个方法需要在相应的.h文件文件中实现UITextFieldDelegate协议。并在.m文件中添加如下方法

  1. - (BOOL)textFieldShouldReturn:(UITextField *)textField 
  2.     [textField resignFirstResponder]; 
  3.     return YES; 

2.点击界面空白处来隐藏键盘

这个方法的实现主要是给当前的view增加点击事件,并未点击事件增加相应的处理方法,此处是为了隐藏键盘,所以我们可以在点击事件对应的方法中让UITextField放弃第一响应者。

  1. - (void)dismissKeyboard 
  2.     NSArray *subViews = [self.view subviews]; 
  3.     for (id inputText in subViews) { 
  4.         if ([inputText isKindOfClass:[UITextField class]]) { 
  5.             if ([inputText isFirstResponder]) { 
  6.                 [inputText resignFirstResponder]; 
  7.             } 
  8.         } 
  9.     } 

为当前的view增加点击事件

  1. UITapGestureRecognizer *dismissKeyboardTap = [[UITapGestureRecognizer alloc]                                                initWithTarget:self                                                 action:@selector(dismissKeyboard)]; 
  2. [self.view addGestureRecognizer: dismissKeyboardTap]; 

UITextField--为内容增加校验

  1. (BOOL)textFieldShouldEndEditing:(UITextField *)textField 
  2.     switch (textField.tag) { 
  3.         case 100://name 
  4.         { 
  5.             NSLog(@"this is nameField"); 
  6.             //添加校验name的代码 
  7.             break
  8.         } 
  9.         case 101://phone 
  10.         { 
  11.             NSLog(@"this is phoneField"); 
  12.             //添加校验phone的代码 
  13.             break
  14.         } 
  15.         case 102://email 
  16.         { 
  17.             NSLog(@"this is emailField"); 
  18.             //添加校验email的代码 
  19.             break
  20.         }        
  21.         default
  22.             break
  23.     } 
  24.     return YES; 

本文链接:http://my.oschina.net/yulei1943/blog/293201

责任编辑:chenqingxiang 来源: oschina
相关推荐

2014-07-21 14:49:35

iOSUILabel

2011-08-02 11:07:42

iOS开发 UIWebView

2017-02-15 09:25:36

iOS开发MQTT

2011-08-11 16:50:04

iOSTwitter

2013-07-29 04:51:41

iOS开发iOS开发学习file列表查看

2013-04-11 16:08:50

iOS开发技巧积累

2014-08-08 10:12:44

IRC

2013-07-25 15:15:26

iOS开发学习iOS全局变量

2013-07-25 15:19:23

iOS开发学习Xcode打包framiOS开发

2017-12-25 14:59:47

APP架构iOS协议

2013-07-29 05:01:31

iOS开发iOS开发学习按钮拖动和点击

2013-12-17 11:04:10

iOS开发传感器

2013-07-24 16:47:23

iOS开发学习iOS协议代理传值

2013-07-23 07:34:54

iOS开发学习适配iphone5

2012-01-18 13:46:37

ARCiOS

2011-08-02 11:30:41

iOS开发 邮件发送

2011-08-02 09:22:41

iOS iPhone

2014-07-10 10:02:01

iOSHome Kit框架

2014-08-04 17:46:15

NavBarTarBar

2013-12-17 15:32:20

iOS开发NewsstandKi
点赞
收藏

51CTO技术栈公众号