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限制输入 ...
随机推荐
- gulp教程之gulp-concat
简介: 使用gulp-concat合并javascript文件,减少网络请求. 1.安装nodejs/全局安装gulp/本地安装gulp/创建package.json和gulpfile.js文件 1. ...
- shell算数运算
((i=$j+$k)) 等价于 i=`expr $j + $k`((i=$j-$k)) 等价于 i=`expr $j -$k`((i=$j*$k)) 等价于 i=`exp ...
- SQL server 查询某个表在哪些存储过程(SP)中使用到
1.查询某个表被哪些存储过程(以下简称 SP)使用到 : select distinct object_name(id) from syscomments where id in (select ob ...
- CentOS_7.2安装Redis_3.0
一.安装依赖包和开发工具: yum install vim vim-enhanced wget zip unzip telnet ntsysv compat* apr* nasm* gcc gcc* ...
- protocol buffer c++ python库安装
c++库安装较简单,不要用源码,还得下载依赖,就被墙了 https://github.com/google/protobuf/releases 下载一个最新的release安装 #protoc -- ...
- EF6 CodeFirst+Repository+Ninject+MVC4+EasyUI实践(三)
前言 在上一篇中,我们依靠着EasyUI强大的前端布局特性把前端登录界面和主界面给搭建完成了.这一篇我们就要尝试着把整个解决方案部署到云端呢,也就是Visual Studio Online(TFVC) ...
- Check if a configuration profile is installed on iOS
Configuration profiles can be downloaded to an iOS device through Safari to configure the device in ...
- springMVC中实现servlet依赖注入
记录一下开发过程中遇到的问题: 首先看一下这个帖子: http://blog.csdn.net/gaogaoshan/article/details/23540129 由于我使用的是springMVC ...
- MSDN Library for vs 2010安装及使用(MSDN Library)
VS2010正式版不再有单独的MSDN Library安装选项,VS2010的ISO安装光盘里已经包含有MSDN Library,只不过要手动安装,方法如下: 1.安装完VS2010后,在开始菜单中打 ...
- Bootstrap <基础八>图片
Bootstrap 提供了三个可对图片应用简单样式的 class: .img-rounded:添加 border-radius:6px 来获得图片圆角. .img-circle:添加 border-r ...