ios学习吧 关注:67,528贴子:4,534
  • 4回复贴,共1

03-30【ios学习】iOS UI基础控件之UITextField

只看楼主收藏回复

UITextField 是一个用来处理文本输入和现实的控件,在我们的开发当中也是经常被用到。
下面我们一起来学习UITextField吧!!!
基本属性
对象创建以及文本的显示

UITextField *textField = [[UITextField alloc]initWithFrame:CGRectMake(50, 300, 200, 50)];
[self.view addSubView:textField];
//设置显示文本
textField.text = @"点击试试";
//设置文本颜色
textField.textColor = [UIColor redColor];
//设置文本对齐方式
textField.textAlignment = NSTextAlignmentRight;
//设置字体
textField.font = [UIFont fontWithName:@"wawati sc" size:20];


1楼2016-03-30 14:16回复
    其他属性设置TextField的边框
    textField.borderStyle = UITextBorderStyleRoundedRect;
    borderStyle 是一个枚举类型的属性, 默认是:UITextBorderStyleNone, 该枚举的所有成员如下:

    对于以上几种边框样式最好去一一试试,看看效果
    设置TextField的占位字符
    textField.placeholder = @"看看";
    设置TextField的占位字符
    在App中有很多情况需要让编辑框不能编辑,我们通过设置enabled来控件可不可以编辑
    textField.enabled = YES;
    设置TextField的编辑状态
    在App中有很多情况需要让编辑框不能编辑,我们通过设置enabled来控件可不可以编辑
    textField.enabled = YES;
    设置编辑框中删除按钮的出现模式
    我们在使用App时经常会看到当我们的编辑框中有文本的时候,边上会很出现一个删除的图标,当我们不需要框中的内容的时候直接点击按钮就可以把整个框中的内容删掉;在iOS中这个按钮是系统自带的,我们来设置下他的出现模式
    textField.clearButtonMode = UITextFieldViewModeAlways;


    2楼2016-03-30 14:17
    回复
      2026-02-28 13:51:33
      广告
      不感兴趣
      开通SVIP免广告

      以上样式,可以一一试试,只有查看了之后才能跟好的理解
      自定义键盘辅助视图
      在键盘的最上面有一个辅助视图,我们可以通过自定义这个辅助视图实现很多很灵活的功能,下面我举一个非常简单的例子:
      //自定义键盘辅助视图
      UIView *subView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 80)];
      subView.backgroundColor = [UIColor greenColor];
      textField.inputAccessoryView = subView;
      先创建一个视图,然后赋值给inputAccessoryView属性就可以了,这样键盘上的辅助视图就是我们创建的绿色View了自定义键盘
      为了安全着想,现在越来越多的项目中都使用了自定义的键盘;在iOS中键盘的自定义相对来说比较简单,因为系统给我们提供了接口,我们只要自己创建一个键盘视图,然后覆盖当前编辑框的键盘视图就可以:
      //自定义键盘视图
      UIView *redView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 100)];
      redView.backgroundColor = [UIColor redColor];
      textField.inputView = redView;添加编辑框的左/右边视图
      编辑框的设计非常的灵活, 我们自己可以在编辑框的左边再添加一个自定义的视图;
      先设置左视图出现的模式
      textField.leftViewMode = UITextFieldViewModeAlways;
      leftViewMode这也是一个枚举类型的属性,他的成员我就不一一列举了,大家可以自己去头文件中查看,他的枚举成员的大概和删除按钮出现的的意思一样


      4楼2016-03-31 11:10
      回复
        设置左边要出现的视图
        //添加左视图
        UIView *leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 50, 50)];
        leftView.backgroundColor = [UIColor grayColor];
        textField.leftView = leftView;
        textField_leftView
        上面是添加左视图,其实添加右视图是一样的原理,只是设置的是右边两个相关的属性(rightViewMode和rightView)
        编辑框的代理方法
        既然编辑框是一个处理文本的控件,那免不了我们要和用户进行打交道;例如我们要在用户开始输入的、正在输入或者输入结束等等情况下进行一些特殊的处理;那么这些处理的话,编辑框本身并不知道我们具体要做什么处理,所以我们可以作编辑框的代理,让我们自己来做处理;
        设置编辑框的代理
        先遵守编辑框代理协议(UITextFieldDelegate),然后设置代理
        textField.delegate = self;


        5楼2016-03-31 11:10
        回复
          实现代理方法
          具体代理方法如下:
          / textField delegate
          // return button Action
          -(BOOL)textFieldShouldReturn:(UITextField )textField
          {
          //textField:调用次方法的textField
          NSLog(@"点击return 按钮时会执行的方法");
          [textField resignFirstResponder]; //回收键盘
          return YES;
          }
          // Had Begin Editing Action
          -(void)textFieldDidBeginEditing:(UITextField )textField
          {
          NSLog(@"已经开始编辑文本框时执行的方法%@", textField.text);
          }
          // Had End Editing Action
          -(void)textFieldDidEndEditing:(UITextField )textField
          {
          NSLog(@"已经结束编辑时执行的方法%@", textField.text);
          }
          // will begin Editing Action
          -(BOOL)textFieldShouldBeginEditing:(UITextField )textField
          {
          NSLog(@"将要开始编辑时执行的方法%@", textField.text);
          //系统是否响应这个动作
          return YES;
          }
          // Will End Editing Action
          -(BOOL)textFieldShouldEndEditing:(UITextField )textField
          {
          NSLog(@"将要结束编辑时执行的方法%@", textField.text);
          return YES;
          }
          // Will Text Change Action
          -(BOOL)textField:(UITextField )textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString )string
          {
          NSLog(@"将要被改变的范围:%ld, %ld", (long)range.location, (long)range.length);
          NSLog(@"将要改变的文本:%@", string);
          NSLog(@"%@", textField.text);
          return YES;
          }
          // clear button Action
          -(BOOL)textFieldShouldClear:(UITextField )textField
          {
          NSLog(@"将被清空时执行的方法%@", textField.text);
          return YES;
          }


          6楼2016-03-31 11:12
          回复