iOS UITextField限制输入数字
有时候项目中要求文本框中只能输入数字,如:价格、公里数、费用等等,一般的文本框不限制输入的格式,这时候只能强制限制输入框的输入格式了,代码如下:
#import "ViewController.h"
@interface ViewController ()<UITextFieldDelegate>{
         UITextField *numTextField;
}
@end
@implementation ViewController
- (void)viewDidLoad {
       [super viewDidLoad];
numTextField = [[UITextField alloc] initWithFrame:CGRectMake(60, 80, 100, 40)];
       numTextField.layer.borderColor = [[UIColor grayColor]CGColor];
       numTextField.layer.borderWidth = 1.0f;
       numTextField.delegate = self;
       numTextField.textAlignment = NSTextAlignmentCenter;
       [self.view addSubview:numTextField];
}
#pragma mark - UITextField限制输入数字
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
          if(textField == numTextField){
               return [self validateNumber:string];
          }
          return YES;
}
#pragma mark - 验证是否是纯数字
- (BOOL)validateNumber:(NSString*)number {
        BOOL res = YES;
        NSCharacterSet *tmpSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
        int i = 0;
        while (i < number.length) {
              NSString * string = [number substringWithRange:NSMakeRange(i, 1)];
              NSRange range = [string rangeOfCharacterFromSet:tmpSet];
              if (range.length == 0) {
                    res = NO;
                    NSLog(@"请输入数字");
                    break;
              }
              i++;
         }
        return res;
}
- (void)didReceiveMemoryWarning {
       [super didReceiveMemoryWarning];
      // Dispose of any resources that can be recreated.
}
@end
注:写文章的时候,突然想到了可以设置键盘样式为数字形式(UIKeyboardTypeNumberPad),这样的话应该也是可以限制的,通过模拟器调试,设置键盘样式没有作用,因为用电脑上的键盘可以输入汉字或字母,不知道真机是否可以,感兴趣的可以在真机上测试下。
iOS UITextField限制输入数字的更多相关文章
- iOS开发密码输入数字和字母混合
		
#import "TestInPut.h" @implementation TestInPut +(BOOL)judgePassWordLegal:(NSString *)pass ...
 - iOS UITextField限制输入字数
		
关于iOS的文本框有时需要限制字数,如手机号,在UITextField的代理单纯写一个判断,在字数超过限制时,这时再想删除就删除不掉,可以在代理这样写,就解决 - (BOOL)textField:(U ...
 - UITextField只能输入数字NSCharacterSet实现
		
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementS ...
 - 【iOS学习笔记】UITextField中的输入检测——限制只能输入数字和小数点
		
最近趁着放假时间,在看The Big Nerd Ranch的iOS编程,想着重新复习一遍iOS开发的基础知识 于是从这一篇开始记录一些学习过程中遇到的小问题 书中第四章有一个温度转换的app实现,整体 ...
 - iOS TextField输入限制(限制长度、只能输入数字,只能输入数字字母……)
		
项目中各个地方都会用到TextField,textField的输入也会有各种需求,各种限制,每次用到的时候要重写一遍这些限制,导致各种垃圾代码,各种重复,有一天,我终于看不下去了,于是把textFie ...
 - ios设置textField只能输入数字用于电话号码
		
首先在.xib中将UITextField的Keyboard设置为Number Pad,但是使用时键盘会切回别的键盘无法对内容进行校验.通过神奇的百度我知道了通过以下方法可以解决这样的问题: 首先让.x ...
 - 简单几步实现 IOS  UITextField输入长度的控制
		
在ios开发过程中,我们有时候需要对UITextField的输入长度进行控制,比如输入手机号码最大长度为11位等,而ios自身又不像android那样可以设置输入框的输入长度,接下来通过简单几步实现这 ...
 - 限制 Text Field 输入的内容类型:只允许输入数字
		
效果如下: ViewController.h #import <UIKit/UIKit.h> @interface ViewController : UIViewController< ...
 - iOS 限制TextField输入长度(标准)
		
iOS 限制TextField输入长度(标准) 网上有很多限制textField输入长度方法,但是我觉得都不是很完美,准确来说可以说是不符合实际开发的要求,因此在这里整理一下textField限制输入 ...
 
随机推荐
- angularjs 嵌套控制器,子控制器访问父控制器
			
<pre> http://www.lovelucy.info/understanding-scopes-in-angularjs.html http://blog.csdn.net/jfk ...
 - nginx和tomcat的区别
			
web上的server都叫web server,但是大家分工也有不同的. nginx常用做静态内容服务和代理服务器(不是你FQ那个代理),直面外来请求转发给后面的应用服务(tomcat,django什 ...
 - javascript和jquey的自定义事件小结
			
“通过事件机制,可以将类设计为独立的模块,通过事件对外通信,提高了程序的开发效率.” 可以把多个关联但逻辑复杂的操作利用自定义事件的机制灵活地控制好 对象之间通过直接方法调用来交互 1)对象A直接调用 ...
 - 荣品四核4412开发板的USB摄像头问题
			
RP4412开发板是荣品电子研发的一款三星四核Exynos4412评估板开发板,支持WIFI+LAN上网.蓝牙4.0.4G上网.500万自动对焦摄像头.GPS.网卡.音频,1080P HDMI音视频同 ...
 - Strategy pattern策略模式
			
在Java的集合框架中,经常需要通过构造方法传入一个比较器Comparator,或者创建比较器传入Collections的静态方法中作为方法参数,进行比较排序等,使用的是策略模式. 一.策略模式的定义 ...
 - HTML中强大的input标签属性
			
用了许久的html,<input>这个标签是最常用的标签之一. <input type="">标签中type属性是必不可少的,以往我最常用的有 type=& ...
 - HDU 1405
			
题意: 输入一个数n,输出它的素因子与这个素因子出现的次数. 分析: 用欧拉函数,变下形就好了,不再过多解释. 代码如下: #include <iostream> #include < ...
 - io端口与io内存详解
			
(一)地址的概念 1)物理地址:CPU地址总线传来的地址,由硬件电路控制其具体含义.物理地址中很大一部分是留给内存条中的内存的,但也常被映射到其他存储器上(如显存.BIOS等).在程序指令中的虚拟地址 ...
 - php  循环删除目录中的过期文件
			
$savepath1 = 'Public/biaoqian/upload'; $path1 = dir($savepath1); while (($ ...
 - 利用HttpURLConnection发送请求
			
HttpURLConnection: 每个 HttpURLConnection实例都可用于生成单个请求,但是其他实例可以透明地共享连接到 HTTP 服务器的基础网络.请求后在 HttpURLConne ...