- (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. iOS多线程的初步研究(六)

    iOS多线程的初步研究(六) iOS平台提供更高级的并发(异步)调用接口,让你可以集中精力去设计需完成的任务代码,避免去写与程序逻辑无关的线程生成.运行等管理代码.当然实质上是这些接口隐含生成线程和管 ...

  2. 博客已迁移到lizhug.com

    新的博客地址 http://lizhug.com

  3. eclipse中报错:Errors running builder “Integrated External Tool Builder” on project

    在eclipse构建项目的时候,一直报如下错误: Errors during build. Errors running builder "Integrated External Tool ...

  4. bat编程基本知识

    1 声明变量 ::注意=前后不要留空格.随便说一下,在bat中,连续两个冒号表示注释 set var1=test 如果要引用这个变量的话,可以这样写:%var1% 2 echo off/on echo ...

  5. 闭包、lambda和interface

    闭包.lambda和interface 人们都很喜欢讨论闭包这个概念.其实这个概念对于写代码来讲一点用都没有,写代码只需要掌握好lambda表达式和class+interface的语义就行了.基本上只 ...

  6. Linux设备驱动开发详解-Note(11)--- Linux 文件系统与设备文件系统(3)

    Linux 文件系统与设备文件系统(3) 成于坚持,败于止步 sysfs 文件系统与 Linux 设备模型 1.sysfs 文件系统 Linux 2.6 内核引入了 sysfs 文件系统,sysfs ...

  7. [C++]neuroscan的延时预估

    一直用自己写的程序在线处理脑电信号,知道其中有一个时间延时,但具体延时是多少没有是个准确的估计,今天抽时间做了一下,发现大概延时在100ms左右. 以后尝试使用并口操作.应该可以完全避免这个问题. 实 ...

  8. jvm内存JVM学习笔记-引用(Reference)机制

    在写这篇文章之前,xxx已经写过了几篇关于改jvm内存主题的文章,想要了解的朋友可以去翻一下之前的文章 如果你还不了解JVM的基本概念和内存划分,请阅读JVM学习笔记-基础知识和JVM学习笔记-内存处 ...

  9. OGG学习笔记01-基础概述

    OGG学习笔记01-基础概述 OGG(Oracle Golden Gate),最近几年在数据同步.容灾领域特别火,甚至比Oracle自己的原生产品DataGuard还要风光,主要是因为其跨平台.跨数据 ...

  10. Android之WebView网页滚动截图

    WebView 网页滚动截屏,可对整个网页进行截屏而不是仅当前屏幕哦! 注意若Web页面存在position:fixed; 的话得在调用前设置为 position:absolute; 哦,否则会出现很 ...