有时候项目中要求文本框中只能输入数字,如:价格、公里数、费用等等,一般的文本框不限制输入的格式,这时候只能强制限制输入框的输入格式了,代码如下:
#import "ViewController.h"
@interface ViewController ()
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.border.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),这样的话应该也是可以限制的,通过模拟器调试,设置键盘样式没有作用,因为用电脑上的键盘可以输入汉字或字母,不知道真机是否可以,感兴趣的可以在真机上测试下。
敢达决战官方正版 安卓版v6.7.9
下载敢达决战 安卓版v6.7.9
下载像素火影骨架佐助 (Perseverance Fire Shadow)手机版v1.16
下载要塞英雄 安卓版v33.20.0-39082670-Android
下载梦想城镇vivo最新版本 安卓版v12.0.1
梦想城镇vivo版是这款卡通风模拟经营类手游的渠道服版本,玩
怦然心动的瞬间 安卓版v1.0
怦然心动的瞬间是一款真人向的恋爱互动游戏,在游戏中玩家将扮演
曼尼汉堡店游戏 安卓版v1.0.3
曼尼汉堡店是一款非常好玩的精品恐怖类型冒险游戏,在这款游戏中
现代总统模拟器去广告版 安卓版v1.0.46
现代总统模拟器是一款休闲养成类游戏,可能对于不少的玩家来说都
现代总统模拟器付费完整版 安卓版v1.0.46
现代总统模拟器高级版在商店是需要付费的,相对于普通版本,高级