您的位置:首页 > 移动开发 > IOS开发

iOS textField控件控制输入字符串的格式

2015-12-11 20:11 465 查看
textField.text 是当前text,不包含刚输入的string
range 是string要输入的位置
string 是刚输入的内容(可能是粘贴过来的一整段string)

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{

    
   BOOL isChange =YES;

    
   if (textField ==self.cardInputLabel) {

        //字符串删除时触发
       if ([string isEqualToString:@""] && range.length >0) {

            
            isChange =YES;
      //字符串写入时触发
        }else {

            
           if (textField.text.length >19) {
                isChange =NO;
            }else {
      //四个字符一组,限制输入字符串的总长度,并且保证从别的地方粘贴的字符串格式也统一
                NSInteger loaction = textField.text.length;
                NSMutableString *newText = [NSMutableString stringWithString:string];
                NSMutableString *mutString = [[NSMutableString alloc] init];
               for (int i =0 ,j =0; i
< newText.length && loaction + j <19; i++ , j++) {
                   if ((loaction + j +1) %5 ==
0) {
                        [mutString appendString:@" "];
                        j++;
                    }
                    NSRange nowRange = NSMakeRange(i,1);
                    [mutString appendString:[newText substringWithRange:nowRange]];
                }
                string = [mutString uppercaseString] ;
                textField.text = [NSString stringWithFormat:@"%@%@",textField.text,string];
            }
            isChange =NO;
        }
    }
   return isChange;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  uitextfield ios 算法