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

BOOL returnValue = YES;

NSMutableString* newText = [NSMutableString stringWithCapacity:0];

[newText appendString:textField.text];// 拿到原有text,根据下面判断可能给它添加" "(空格);

NSString * noBlankStr = [textField.text stringByReplacingOccurrencesOfString:@" "withString:@""];

NSInteger textLength = [noBlankStr length];

if (string.length) {

if (textLength < 25) {//这个25是控制实际字符串长度,比如银行卡号长度

if (textLength > 0 && textLength %4 == 0 ) {

newText = [NSMutableString stringWithString:[newText stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]];

[newText appendString:@" "];

[newText appendString:string];

textField.text = newText;

returnValue = NO;//为什么return NO?因为textField.text = newText;text已经被我们替换好了,那么就不需要系统帮我们添加了,如果你ruturnYES的话,你会发现会多出一个字符串

}else {

[newText appendString:string];

}

}else { // 比25长的话 return NO这样输入就无效了

returnValue =NO;

}

}else { // 如果输入为空,该怎么地怎么地

[newText replaceCharactersInRange:range withString:string];

}

return returnValue;

}

银行卡去空格:

首先添加一个target方法

[self.tf addTarget:self action:@selector(tfValueChange:) forControlEvents:UIControlEventEditingChanged];

- (void)tfValueChange:(id)sender {

//    NSString *str = [self.tf.text substringFromIndex:self.tf.text.length-2];

if(self.tf.text.length<=4){

return;

}

NSString *str = [self.tf.text substringFromIndex:self.tf.text.length-1];

NSLog(@"%@",str);

if([str isEqualToString:@" "] && str.length%4==1){

NSMutableString* newText = [NSMutableString stringWithCapacity:0];

[newText appendString:self.tf.text];// 拿到原有text,根据下面判断可能给它添加" "(空格);

NSRange range = NSMakeRange(self.tf.text.length-1,1);

[newText deleteCharactersInRange:range];

self.tf.text =newText;

NSLog(@"=======%@",newText);

}

}

uitextfield银行卡加空格的更多相关文章

  1. ios 去除UITextField中的空格

    NSString *qName =[userNameText.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNew ...

  2. iOS----------输入框UITextField禁止输入空格

    方法一:添加代理 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range rep ...

  3. 输入框UITextField禁止输入空格方法

    方法一:添加代理 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range rep ...

  4. UITextField常用属性归纳:文本框样式、文字样式、键盘样式、左右视图样式、清除按钮设置等

    (1)可以根据需要设置文本框的样式(包括形状.边框颜色.背景等). (2)可以根据需要设置文字显示样式(包括输入密码时的密文显示.文字横向居中.纵向居中上下.输入的文字是否首席木大写.文字超过后是否缩 ...

  5. UITextField使用详解

    转iOS中UITextField使用详解 (1) //初始化textfield并设置位置及大小   UITextField *text = [[UITextField alloc]initWithFr ...

  6. 你真的了解UITextField吗?

    一:首先查看一下关于UITextField的定义 NS_CLASS_AVAILABLE_IOS(2_0) @interface UITextField : UIControl <UITextIn ...

  7. UI第三节—— UITextField详解

    戏言:UITextField对于需要登陆注册的界面的作用还是相当明显,但是对于键盘过的遮挡问题,可是重点哦!这里就涉及到通知(NSNotificationCenter)的内容. //注册事件 [[NS ...

  8. iOS开发之--UITextField属性

    UITextField属性 0.     enablesReturnKeyAutomatically 默认为No,如果设置为Yes,文本框中没有输入任何字符的话,右下角的返回按钮是disabled的. ...

  9. UITextField属性

    0.      enablesReturnKeyAutomatically 默认为No,如果设置为Yes,文本框中没有输入任何字符的话,右下角的返回按钮是disabled的. 1.borderStyl ...

随机推荐

  1. Struts启动报空指针

    严重: Exception starting filter struts2 java.lang.NullPointerException at com.opensymphony.xwork2.util ...

  2. linux下面安装配置mongoDB

    不知道为什么官网最新的2.4我一直解压失败 下载之前确认一下你的操作系统是64位的还是32位的对应去下载 64位链接:http://fastdl.mongodb.org/linux/mongodb-l ...

  3. 发布Activex全过程

    C#制作.打包.签名.发布Activex全过程 一.前言 最近有这样一个需求,需要在网页上面启动客户端的软件,软件之间的通信.调用,单单依靠HTML是无法实现了,因此必须借用Activex来实现.由于 ...

  4. service structure flowchart [mobile to server via HTTP RESTful API and TCP/IP in a map]

    mobile to server in RESTful and TCP/IP way

  5. hdu-4471-Homework-矩阵快速幂+优化加速

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4471 题目意思: 求f(n). 当n为特殊点nk时 解题思路: 当x不为特殊点时,直接用基本的矩阵快 ...

  6. LAMP编译安装遇到的问题

    apache安装 1, no SSL-C headers found configure: error: ...No recognized SSL/TLS toolkit detected 解决办法: ...

  7. 使用HttpWebRequest模拟登陆阿里巴巴(alibaba、httpwebrequest、login)

    前言 其实老喜欢取经,偶尔也得分享下.关于阿里巴巴国际站的登陆,过程有点复杂但是算不上难.一不小心少个东西倒也挺麻烦的. 主要是看下请求类HttpClient基本请求封装使用,AliClient模拟浏 ...

  8. PHPWAMP开启php_stomp.dll的具体方式,php5.6开启stomp的图解过程

    友情提示:其他版本,方式一样的,大家依样画葫芦即可. 首先下载PHP 扩展php_stomp.dll文件,在php官方网站搜索"Stomp",搜索后,如下图 如下图点击" ...

  9. The Linux Mint 17.1:Eclipse Run The C++ And Python Configoration

    p { margin-bottom: 0.1in; line-height: 120% } # Copyright (c) 2016, 付刘伟 (Liuwei Fu)# All rights rese ...

  10. .PHP后缀大写导致Linux下Composer找不到类

    在本地Windows写完一个Composer包,上传到Linux报错找不到类,纠结了一下午,最后发现是.PHP后缀大写导致的问题. mv Google2FA.PHP Google2FA.php