博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS UITextField 数字输入限制 只能输入数字和小数点,只能有两位小数
阅读量:5124 次
发布时间:2019-06-13

本文共 2734 字,大约阅读时间需要 9 分钟。

 

@interface ViewController ()<UITextFieldDelegate>

{
    BOOL isHaveDian;
}

@end

 

1 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 2 { 3     if ([textField.text rangeOfString:@"."].location == NSNotFound) { 4         isHaveDian = NO; 5     } 6     if ([string length] > 0) { 7      8         unichar single = [string characterAtIndex:0];//当前输入的字符 9         if ((single >= '0' && single <= '9') || single == '.') {
//数据格式正确10 11 //首字母不能为0和小数点12 if([textField.text length] == 0){13 if(single == '.') {14 [self showError:@"亲,第一个数字不能为小数点"];15 [textField.text stringByReplacingCharactersInRange:range withString:@""];16 return NO;17 }18 if (single == '0') {19 [self showError:@"亲,第一个数字不能为0"];20 [textField.text stringByReplacingCharactersInRange:range withString:@""];21 return NO;22 }23 }24 25 //输入的字符是否是小数点26 if (single == '.') {27 if(!isHaveDian)//text中还没有小数点28 {29 isHaveDian = YES;30 return YES;31 32 }else{33 [self showError:@"亲,您已经输入过小数点了"];34 [textField.text stringByReplacingCharactersInRange:range withString:@""];35 return NO;36 }37 }else{38 if (isHaveDian) {
//存在小数点39 40 //判断小数点的位数41 NSRange ran = [textField.text rangeOfString:@"."];42 if (range.location - ran.location <= 2) {43 return YES;44 }else{45 [self showError:@"亲,您最多输入两位小数"];46 return NO;47 }48 }else{49 return YES;50 }51 }52 }else{
//输入的数据格式不正确53 [self showError:@"亲,您输入的格式不正确"];54 [textField.text stringByReplacingCharactersInRange:range withString:@""];55 return NO;56 }57 }58 else59 {60 return YES;61 }62 }

 

1 - (void)showError:(NSString *)errorString2 {3     [(AppDelegate *)[UIApplication sharedApplication].delegate showErrorView:errorString];4     [NSTimer scheduledTimerWithTimeInterval:2.0f target:self selector:@selector(removeErrorView2) userInfo:nil repeats:NO];5     6     [self.moneyTf resignFirstResponder];7 }

 

转载于:https://www.cnblogs.com/codemakerhj/p/5130877.html

你可能感兴趣的文章
WCF揭秘——使用AJAX+WCF服务进行页面开发
查看>>
【题解】青蛙的约会
查看>>
IO流
查看>>
mybatis调用存储过程,获取返回的游标
查看>>
设计模式之装饰模式(结构型)
查看>>
面向对象的设计原则
查看>>
Swift3.0服务端开发(三) Mustache页面模板与日志记录
查看>>
EntityFrameWork 实现实体类和DBContext分离在不同类库
查看>>
autopep8
查看>>
GIT在Linux上的安装和使用简介
查看>>
基于C#编程语言的Mysql常用操作
查看>>
s3c2440实验---定时器
查看>>
MyEclipse10安装SVN插件
查看>>
[转]: 视图和表的区别和联系
查看>>
Regular Experssion
查看>>
图论例题1——NOIP2015信息传递
查看>>
CocoaPods的安装和使用那些事(Xcode 7.2,iOS 9.2,Swift)
查看>>
Android 官方新手指导教程
查看>>
幸运转盘v1.0 【附视频】我的Android原创处女作,请支持!
查看>>
UseIIS
查看>>