美文网首页iOS Developer
UITextField 实现手机号码中自动添加@“-”

UITextField 实现手机号码中自动添加@“-”

作者: 施主小欣 | 来源:发表于2017-03-25 15:54 被阅读136次

    最新项目中要实现手机号码格式为(XXX-XXXX-XXXX)的效果,在查阅了一些资料后我把自己的代码贴出来与大家一起分享下。

    @implementation CustomStyleOneView {
    
       NSInteger i;//定义全局变量
    }
    
    self.nameTextField = [[UITextField alloc] initWithFrame:CGRectMake(CGRectGetMaxX(self.nameLab.frame) + 12 * HMWidth, 0, self.frame.size.width - CGRectGetMaxX(self.nameLab.frame) - 75 * HMWidth, self.frame.size.height / 2 - HMHeight)];
    self.nameTextField.keyboardType = UIKeyboardTypeASCIICapableNumberPad;
    self.nameTextField.placeholder = @"请输入正确的手机号";
    self.nameTextField.font = [UIFont systemFontOfSize:15];
    self.nameTextField.textColor = [UIColor hx_colorWithHexRGBAString:@"#212121"];
    
    [self.nameTextField addTarget:self action:@selector(textFieldDidChanged:) forControlEvents:UIControlEventEditingChanged];
    
    self.nameTextField.delegate = self;
    [self addSubview:self.nameTextField];
    
    
    #pragma mark - TextField 电话号自动加 "-"
    /**
     //备注:当到第四位或第九位时,如果此时是正在输入,则自动增加空格,如果正在删除,则自动删除空格!!!
     //当到第13位时,截取前面的13位字符串,收起键盘
     //若想要获取输入的手机,需要先删除空格; NSString *textFieldStr =[self.textField.textstringByReplacingOccurrencesOfString:@" "withString:@""];
     */
    - (void)textFieldDidChanged:(UITextField *)textField{
    
    if (textField == self.nameTextField) {
        
        if (textField.text.length > i) {
            
            if (textField.text.length == 4 || textField.text.length == 9 ) {//输入
                
                NSMutableString * str = [[NSMutableString alloc ] initWithString:textField.text];
                [str insertString:@"-" atIndex:(textField.text.length-1)];
                
                textField.text = str;
            }if (textField.text.length >= 13 ) {//输入完成
                
                textField.text = [textField.text substringToIndex:13];
                
                [textField resignFirstResponder];
                
                
            }
            i = textField.text.length;
    
        }else if (textField.text.length < i){//删除
            
            if (textField.text.length == 4 || textField.text.length == 9) {
                
                textField.text = [NSString stringWithFormat:@"%@",textField.text];
                
                textField.text = [textField.text substringToIndex:(textField.text.length-1)];
            }
            
            i = textField.text.length;
        }
    }else if (textField == self.verifcationTextField) {
        
        /**验证码大于4位跳出焦点*/
        if (textField.text.length >= 4) {
            
            [textField resignFirstResponder];
    
            NSString *str = self.nameTextField.text;
            str = [str stringByReplacingOccurrencesOfString:@"-" withString:@""];
            
            self.accountBlock(str, self.verifcationTextField.text);
        }
    }
    }
    

    效果图如下:


    效果图.png

    相关文章

      网友评论

        本文标题:UITextField 实现手机号码中自动添加@“-”

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