UITextField各种使用方法

作者: 直男程序员 | 来源:发表于2018-03-19 16:55 被阅读70次

        在做项目使用textfield的时候,可能是比较常见的账号密码输入,有可能需要自定义左右按钮,有可能需要处理输入的各种情况,在使用使用具体的语法可能会不太记得,在这里我给大家总结下UITextField的常用语法,基本上已经覆盖全面,如果有什么要补充的可以给我留言,我及时修改.

    login

    1.初始化textfield并设置位置及大小

        UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)];

    2.设置边框样式,只有设置了才会显示边框样式  

        text.borderStyle = UITextBorderStyleRoundedRect;

          typedef enum {

            UITextBorderStyleNone, (无样式)

            UITextBorderStyleLine,(线条)

            UITextBorderStyleBezel,(线框)

            UITextBorderStyleRoundedRect(圆角)  

          } UITextBorderStyle;

    3.设置输入框的背景颜色,此时设置为白色 如果使用了自定义的背景图片边框会被忽略掉  

           text.backgroundColor = [UIColor whiteColor];

    4.设置背景

          text.background = [UIImage imageNamed:@"dd.png"];

    5.设置不可用背景 

          text.disabledBackground = [UIImage imageNamed:@"cc.png"];

    6.当输入框没有内容时,水印提示 提示内容为password

          text.placeholder = @"password";

    7.设置输入框内容的字体样式和大小

          text.font = [UIFont fontWithName:@"Arial" size:20.0f];  //设置字体样式

          text.font = [[UIFont] fontWithSize: 15] //设置字体大小

          text.textColor = [UIColor redColor]; //设置字体颜色  

    8.输入框中是否有个删除的 X 号,在什么时候显示,用于一次性删除输入框中的内容

          text.clearButtonMode = UITextFieldViewModeAlways;

          typedef enum {

                UITextFieldViewModeNever, //永不出现

                UITextFieldViewModeWhileEditing, //编辑时出现

                UITextFieldViewModeUnlessEditing,//除了编辑外都出现

                UITextFieldViewModeAlways //一直出现

          } UITextFieldViewMode;

    9.输入框中一开始就有的文字

            text.text = @"一开始就在输入框的文字";

    10.密文输入

            text.secureTextEntry = YES;

    11.是否纠错

            text.autocorrectionType = UITextAutocorrectionTypeNo;

            typedef enum {

                UITextAutocorrectionTypeDefault,默认

                UITextAutocorrectionTypeNo,不自动纠错

                UITextAutocorrectionTypeYes,自动纠错

            } UITextAutocorrectionType;

    12.再次编辑就清空之前内容

              text.clearsOnBeginEditing = YES; 

    13.内容对齐方式

              text.textAlignment = UITextAlignmentLeft;

        //内容的垂直对齐方式UITextField继承自UIControl,此类中有一个属性contentVerticalAlignment

              text.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;

    14.自适应文本窗口大小.默认是保持原来大小,而让长文本滚动  

              textFied.adjustsFontSizeToFitWidth = YES;

              text.minimumFontSize = 20; //设置自动缩小显示的最小字体大小

    15.设置键盘的样式

              text.keyboardType = UIKeyboardTypeNumberPad;

               typedef enum {

                    UIKeyboardTypeDefault,默认键盘,支持所有字符

                    UIKeyboardTypeASCIICapable,支持ASCII的默认键盘

                    UIKeyboardTypeNumbersAndPunctuation,标准电话键盘,支持+*#字符

                    UIKeyboardTypeURL,            URL键盘,支持.com按钮只支持URL字符

                    UIKeyboardTypeNumberPad,数字键盘

                    UIKeyboardTypePhonePad,电话键盘

                    UIKeyboardTypeNamePhonePad,电话键盘,也支持输入人名

                    UIKeyboardTypeEmailAddress,用于输入电子邮件地址的键盘

                    UIKeyboardTypeDecimalPad,数字键盘有数字和小数点

                    UIKeyboardTypeTwitter,优化的键盘,方便输入@、#字符

                    UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable, 

                } UIKeyboardType;

    16.首字母是否大写

              text.autocapitalizationType = UITextAutocapitalizationTypeNone;

               typedef enum {

                    UITextAutocapitalizationTypeNone,不自动大写

                    UITextAutocapitalizationTypeWords,单词首字母大写

                    UITextAutocapitalizationTypeSentences,句子的首字母大写

                    UITextAutocapitalizationTypeAllCharacters,所有字母都大写

                } UITextAutocapitalizationType;

    17.return键样式

              text.returnKeyType =UIReturnKeyDone;

              typedef enum {

                    UIReturnKeyDefault,默认灰色按钮,标有Return

                    UIReturnKeyGo,标有Go的蓝色按钮

                    UIReturnKeyGoogle,标有Google的蓝色按钮,用语搜索

                    UIReturnKeyJoin,标有Join的蓝色按钮

                    UIReturnKeyNext,标有Next的蓝色按钮

                    UIReturnKeyRoute,标有Route的蓝色按钮

                    UIReturnKeySearch,标有Search的蓝色按钮

                    UIReturnKeySend,标有Send的蓝色按钮

                    UIReturnKeyYahoo,标有Yahoo的蓝色按钮

                    UIReturnKeyYahoo,标有Yahoo的蓝色按钮

                    UIReturnKeyEmergencyCall,紧急呼叫按钮

                } UIReturnKeyType;

    18.键盘外观

               textView.keyboardAppearance = UIKeyboardAppearanceDefault;

               typedef enum {

                    UIKeyboardAppearanceDefault,默认外观,浅灰色

                    UIKeyboardAppearanceAlert,深灰石墨色

                } UIReturnKeyType;

    19.设置代理 用于实现协议

              text.delegate = self;

    20.把textfield加到视图中

              [self.view addSubview:text];

    21.右侧添加自定义视图

           //最右侧加图片是以下代码   左侧类似

                UIImageView *image=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"right.png"]];

                text.rightView=image;

                text.rightViewMode = UITextFieldViewModeAlways; //右侧视图什么时候出现 这个是必须的,否则永远不会出现

                typedef enum {

                        UITextFieldViewModeNever,

                        UITextFieldViewModeWhileEditing,

                        UITextFieldViewModeUnlessEditing,

                        UITextFieldViewModeAlways

                } UITextFieldViewMode;

    22.收回键盘

               text. resignFirstResponder (常用)

    23.重写绘制行为

            除了UITextField对象的风格选项,你还可以定制化UITextField对象,为他添加许多不同的重写方法,来改变文本字段的显示行为。这些方法都会返回一个CGRect结构,制定了文本字段每个部件的边界范围。以下方法都可以重写。

    – textRectForBounds:  //重写来重置文字区域

    – drawTextInRect:  //改变绘文字属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了.

    – placeholderRectForBounds:  //重写来重置占位符区域

    – drawPlaceholderInRect:  //重写改变绘制占位符属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了.

    – borderRectForBounds:  //重写来重置边缘区域

    – editingRectForBounds:  //重写来重置编辑区域

    – clearButtonRectForBounds:  //重写来重置clearButton位置,改变size可能导致button的图片失真

    – leftViewRectForBounds:

    – rightViewRectForBounds:

    24.delegate

            //1.是否应该开始编辑 ,这里处理特殊情况下的不可编辑

    是否应该开始编辑.png

            //2.开始编辑,这时候可以进行重新请求数据等操作

    已经开始编辑.png

            //3.编辑过程,在这里可以进行输入内容限制输入,如限制字数 特殊字符等操作

    编辑过程.png

            //4.是否可以点击return按钮,这里可进行例如字数和规则等不符合时不可点击等操作

    是否可以点击.png

            //5.是否应该结束编辑,这个用的不多

    是否应该结束编辑.png

            //6.已经结束编辑,这时可以把textfield值传递,因为这时候是最终的值,或者进行编辑结束的具体操作

    已经结束编辑.png

        相信大家看完这篇文章后,对UITextField的使用都有了一个具体的了解,我总结的可能不够全面,也可能一些地方存在问题,欢迎大家留言纠正!

    相关文章

      网友评论

        本文标题:UITextField各种使用方法

        本文链接:https://www.haomeiwen.com/subject/ulepqftx.html