限制textfiled输入字符长度

[self.textfiled addTarget:self action:@selector(textFieldChange) forControlEvents:UIControlEventEditingChanged];


- (void)textFieldChange{

    

    NSString *toBeString = self.textfiled.text;

    NSString *lang = self.textfiled.textInputMode.primaryLanguage;

    

    if([lang isEqualToString:@"zh-Hans"]){ //简体中文输入,包括简体拼音,健体五笔,简体手写

        

        UITextRange *selectedRange = [self.textfiled markedTextRange];

        

        UITextPosition *position = [self.textfiled positionFromPosition:selectedRange.start offset:0];

        

        //输入中文时 当前输入汉语拼音  没有选中对应中文时 position是有值的 但是当选中了对应的中文时  position=null

        NSLog(@"%@",position);

        if (position==nil){//选中中文时 position为空

            if (toBeString.length > 15) {


                UIAlertController * alert = [UIAlertController alertControllerWithTitle:@"提示" message:@"标题长度不能超过15" preferredStyle:UIAlertControllerStyleAlert];

                UIAlertAction * action = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:nil];

                [alert addAction:action];

                [self presentViewController:alert animated:YES completion:nil];

                self.textfiled.text = [toBeString substringToIndex:15];

                [self.labelNum setText:[NSString stringWithFormat:@"15/15"]];

                CGSize size = [MyManager sharedManager:[NSString stringWithFormat:@"15/15"] AndFontSize:14];

                self.labelNum.frame=CGRectMake(UISCREEN_WIDTH-size.width-20*kScreenWidthRatio, 0, size.width, 44*kScreenHeightRatio);

            }

            else{

                [self.labelNum setText:[NSString stringWithFormat:@"%lu/15",self.textfiled.text.length]];

                CGSize size = [MyManager sharedManager:[NSString stringWithFormat:@"%lu/15",self.textfiled.text.length] AndFontSize:14];

                self.labelNum.frame=CGRectMake(UISCREEN_WIDTH-size.width-20*kScreenWidthRatio, 0, size.width, 44*kScreenHeightRatio);


            }

            

        }

        

    }else{//中文输入法以外

        

        if (toBeString.length > 15) {

            

            

            UIAlertController * alert = [UIAlertController alertControllerWithTitle:@"提示" message:@"标题长度不能超过15" preferredStyle:UIAlertControllerStyleAlert];

            UIAlertAction * action = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:nil];

            [alert addAction:action];

            [self presentViewController:alert animated:YES completion:nil];

            self.textfiled.text = [toBeString substringToIndex:15];

            [self.labelNum setText:[NSString stringWithFormat:@"15/15"]];

            CGSize size = [MyManager sharedManager:[NSString stringWithFormat:@"15/15"] AndFontSize:14];

            self.labelNum.frame=CGRectMake(UISCREEN_WIDTH-size.width-20*kScreenWidthRatio, 0, size.width, 44*kScreenHeightRatio);

        }

        else

        {

            [self.labelNum setText:[NSString stringWithFormat:@"%lu/15",self.textfiled.text.length]];

            CGSize size = [MyManager sharedManager:[NSString stringWithFormat:@"%lu/15",self.textfiled.text.length] AndFontSize:14];

            self.labelNum.frame=CGRectMake(UISCREEN_WIDTH-size.width-20*kScreenWidthRatio, 0, size.width, 44*kScreenHeightRatio);

        }

        

    }

    

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值