美文网首页
iOS UITextField实现输入手机号时自动添加空格

iOS UITextField实现输入手机号时自动添加空格

作者: 等不来的期待 | 来源:发表于2018-03-16 10:34 被阅读331次

    今天在项目遇到输入手机号自动输入空格的样式如136 3961 1234的样式,自己写的方法,以供参考。
    思路:

    利用UITextField的代理方法textFieldDidEditing:该方法实现输入框文字变动时的监听:,然后利用字符串的分割拼接来实现
    

    实现方法:
    UITextField代理方法中代码:

    NSInteger i;//定义全局变量  
      
    - (void)viewDidLoad {  
        [super viewDidLoad];  
        // Do any additional setup after loading the view from its nib.  
        i = 0;  
          
        [self.textField addTarget:self action:@selector(textFieldDidEditing:) forControlEvents:UIControlEventEditingChanged];  
    }  
    -(void)textFieldDidEditing:(UITextField *)textField{  
        if (textField == self.textField) {  
            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;  
            }  
        }  
    }  
    

    ok,上面demo便可实现实现输入手机号时自动添加空格,

    //备注:当到第四位或第九位时,如果此时是正在输入,则自动增加空格,如果正在删除,则自动删除空格!!!

    //当到第13位时,截取前面的13位字符串,收起键盘

    //若想要获取输入的手机,需要先删除空格;
    NSString *textFieldStr =[self.textField.text stringByReplacingOccurrencesOfString:@" "withString:@""];

    相关文章

      网友评论

          本文标题:iOS UITextField实现输入手机号时自动添加空格

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