UITextField 日常使用一些特别的地方

1.textfield  限制输入字数

本方法可防止中文联想、粘贴等突破长度限制、可防止Emoji截为两半导致编码出问题。


- (void)textFieldDidChange:(UITextField *)textField

{

    if (textField == self.textFieldName) {

        if (textField.text.length > 15) {

        UITextRange *markedRange =[textField markedTextRange];

           if(markedRange) {

              return;

           }

            //Emoji2个字符,如果是超出了半个Emoji,用15位置来截取会出现Emoji截为2

        //超出最大长度的那个字符序列(Emoji算一个字符序列)的range

        NSRange range = [textField.text rangeOfComposedCharacterSequenceAtIndex:15];

            textField.text = [textField.text substringToIndex:range.location];

        }

    }

}


2.textfield  float类型数据输入,小数点控制以及小数点后面位数控制

- (void)textFieldDidChange:(UITextField *)textField{

    if (textField.markedTextRange == nil) {

        if(textField == self.moneyTextField){

            if (textField.text.length >0) {

                if([textField.text characterAtIndex:0] == '.'){//第一位不能是‘.’

                    textField.text = @"";

                }

                //‘.’只能出现一次

                NSArray * arr = [textField.text componentsSeparatedByString:@"."];

                if(arr.count >1){

                    textField.text = [NSString stringWithFormat:@"%@.%@",arr[0],arr[1]];

                }

            }

            

            //控制输入范围 0.01~999999.99元之间

            if ([textField.text doubleValue] > 999999.99) {

                if([textField.text integerValue] >999999){

                    textField.text = [textField.text substringToIndex:6];

                }else if (textField.text.length >= 9){

                    textField.text = [textField.text substringToIndex:9];

                }

            }else{

                if(textField.text.length >9){

                    textField.text = [textField.text substringToIndex:9];

                }else{

                    if ([textField.text containsString:@"."]) {

                        NSRange range = [textField.text rangeOfString:@"."];

                        if (textField.text.length > range.location+3) {

                            textField.text = [textField.text substringToIndex:range.location+3];

                        }

                    }

                }

            }

        }

    }

}



3.textfield  添加事件

[textFieldaddTarget:selfaction:@selector(自定义方法)forControlEvents:UIControlEventAllEditingEvents];


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值