UITextField的使用

来源:互联网 发布:apm2.8源码编译 编辑:程序博客网 时间:2024/05/19 21:01

UITextField是输入字符的视图控件

UIView的子类,具有与view一样的属性

字符输入只能是单行输入,不能换行,也不能多行输入

与自己特有的属性

4 textfield通常要设置其代理,并实现相应的代理方法

主要使用场景,如:登录页面中输入帐号密码,或输入手机号,或输入昵称等方面

使用注意事项:

1)输入键盘的显示,以及隐藏;

2)输入时避免输入框被键盘遮挡;


[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. // 实例化  
  2. UITextField *textfield001 = [[UITextField alloc] initWithFrame:CGRectMake(10.050.0200.030.0)];  
  3.       
  4. // 添加到父视图  
  5. [self.view addSubview:textfield001];  
  6.       
  7. // 设置背景颜色  
  8. textfield001.backgroundColor = [UIColor redColor];  
  9.       
  10. // 设置边框属性  
  11. textfield001.layer.cornerRadius = 10.0;  
  12. textfield001.layer.masksToBounds = YES;  
  13. textfield001.layer.borderColor = [UIColor yellowColor].CGColor;  
  14. textfield001.layer.borderWidth = 1.0;  


[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. // 字体设置  
  2. // 占位符,即提示信息  
  3. textfield001.placeholder = @"我是单行字符输入框";  
  4. // 字体颜色  
  5. textfield001.textColor = [UIColor yellowColor];  
  6. // 字体对方方式  
  7. textfield001.textAlignment = NSTextAlignmentRight;  
  8. // 光鼠标颜色  
  9. textfield001.tintColor = [UIColor greenColor];  
  10. // 字体大小  
  11. textfield001.font = [UIFont systemFontOfSize:10.0];  


[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. // 其他属性  
  2. // 左间距视图及模式  
  3. UIImageView *leftImage = [[UIImageView alloc] initWithFrame:CGRectMake(0.00.030.030.0)];  
  4. leftImage.contentMode = UIViewContentModeScaleAspectFit;  
  5. leftImage.image = [UIImage imageNamed:@"leftImage"];  
  6. textfield001.leftView = leftImage;  
  7. textfield001.leftViewMode = UITextFieldViewModeAlways;  
  8. // 右间距视图及模式,若再设置清除按钮,则清除按钮是无效的,即两者不能同时设置  
  9. // UIImageView *rightImage = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, 30.0, 30.0)];  
  10. // rightImage.contentMode = UIViewContentModeScaleAspectFit;  
  11. // rightImage.image = [UIImage imageNamed:@"rightImage"];  
  12. // textfield001.rightView = rightImage;  
  13. // textfield001.rightViewMode = UITextFieldViewModeAlways;  
  14. // 清除按钮,如果设置了右间距视图,则无效,即两者不能同时设置  
  15. textfield001.clearButtonMode = UITextFieldViewModeWhileEditing;  
  16. // 键盘类型  
  17. textfield001.keyboardType = UIKeyboardTypeDefault;  
  18. // 键盘中回车键类型  
  19. textfield001.returnKeyType = UIReturnKeySend;  
  20. // 键盘中回车键有输入时,回车键才可点击,默认是可点击,即NO  
  21. textfield001.enablesReturnKeyAutomatically = NO;  
  22. // 输入框字符明文,或密文方式,默认是明文,即NO  
  23. textfield001.secureTextEntry = NO;  


[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. // 设置代理  
  2. /* 
  3. 1 代理通常设置其他需要实现textfile代理方法的对象 
  4. 2 要设置协议 
  5. 3 实现协议方法 
  6. */  
  7. textfield001.delegate = self;  
  8.   
  9. @interface ViewController () <UITextFieldDelegate>  
  10.   
  11. @end  

[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. // 输入源视图,默认是键盘,可通过设置输入源视图是其他控件,或自定义控件  
  2. // textfield001.inputView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 300.0)];  
  3. // 输入源视图中的顶端视图,默认是没有的  
  4. UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];  
  5. button.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.3];  
  6. button.frame = CGRectMake(0.00.0, CGRectGetWidth(self.view.bounds), 40.0);  
  7. [button setTitle:@"隐藏键盘" forState:UIControlStateNormal];  
  8. [button setTitleColor:[UIColor redColor] forState:UIControlStateNormal];  
  9. [button setTitleColor:[UIColor yellowColor] forState:UIControlStateHighlighted];  
  10. [button addTarget:self action:@selector(hiddenKeyboard) forControlEvents:UIControlEventTouchUpInside];  
  11. textfield001.inputAccessoryView = button;  

[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. // UITextFieldDelegate  
  2.   
  3. // 即将开始编辑  
  4. - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField  
  5. {  
  6.     NSLog(@"即将开始编辑");  
  7.     return YES;  
  8. }  
  9.   
  10. // 已经开始编辑  
  11. - (void)textFieldDidBeginEditing:(UITextField *)textField  
  12. {  
  13.     NSLog(@"已经开始编辑");  
  14. }  
  15.   
  16. // 即将结束编辑  
  17. - (BOOL)textFieldShouldEndEditing:(UITextField *)textField  
  18. {  
  19.     NSLog(@"即将结束编辑");  
  20.     return YES;  
  21. }  
  22.   
  23. // 已经结束编辑  
  24. - (void)textFieldDidEndEditing:(UITextField *)textField  
  25. {  
  26.     NSLog(@"已经结束编辑");  
  27. }  
  28.   
  29. // 正在编辑  
  30. - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string  
  31. {  
  32.     NSLog(@"正在编辑 = %@", textField.text);  
  33.       
  34.     /* 
  35.      1 常用来获取当前输入的信息 
  36.      2 用来判断当前的输入是否限制的字符,如限制只能输入大小写字母,或只能输入数字等 
  37.      3 用来判断输入的字符长度限制 
  38.     */  
  39.       
  40.       
  41.     return YES;  
  42. }  
  43.   
  44. // 应该清除  
  45. - (BOOL)textFieldShouldClear:(UITextField *)textField  
  46. {  
  47.     NSLog(@"点击了清除键");  
  48.       
  49.     return YES;  
  50. }  
  51.   
  52. // 应该回车  
  53. - (BOOL)textFieldShouldReturn:(UITextField *)textField  
  54. {  
  55.     NSLog(@"点击了回车键");  
  56.       
  57.     // 隐藏键盘  
  58.     // 方法1 失去第一响应  
  59. //    [textField resignFirstResponder];  
  60.     // 方法2 结束编辑  
  61.     [textField endEditing:YES];  
  62.       
  63.     return YES;  
  64. }  

[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. - (void)hiddenKeyboard  
  2. {  
  3.     // 当前视图结束编辑  
  4.     [self.view endEditing:YES];  
  5. }  



0 0