输入限制(输入字数或输入内容限制)
来源:互联网 发布:卖家加入淘宝客 编辑:程序博客网 时间:2024/06/06 19:38
开发中,经常会遇到要求对输入进行一些限制的需求,有些是限制输入的字数,有些是限制输入的内容。
输入功能的使用不是使用UITextView,就是使用UITextField。
下面就关于UITextField对于限制贴出如下代码(代码功能实现效果:5个整数位+1个小数点+2个小数位)
编码过程注意:
1、首个输入字符只能是1-9之间的数字;
2、只能输入一个小数点;
3、整数位只最多只能输入5位;
4、小数位最多只能输入2位;
步骤1 编码实现限制
- (BOOL)limitInputString:(NSString *)aString{ //限制只能输入数字与小数点 NSCharacterSet *firstSet = [NSCharacterSet characterSetWithCharactersInString:@".0"]; NSCharacterSet *numberSet = [NSCharacterSet characterSetWithCharactersInString:@"123456789"]; NSCharacterSet *limitSet = [NSCharacterSet characterSetWithCharactersInString:@".0123456789"]; NSString *tempStr = aString; if (tempStr.length == 1) { //首个输入不能为0或小数点 NSRange firstRange = [tempStr rangeOfCharacterFromSet:firstSet]; //但可以输入数字 NSRange numberRange = [tempStr rangeOfCharacterFromSet:numberSet]; if (firstRange.location != NSNotFound || numberRange.location == NSNotFound) { return NO; } } else if (tempStr.length > 1) {//编辑状态中移动光标后,首个输入不能为0 NSString *firstString = [tempStr substringToIndex:1]; if ([firstString isEqualToString:@"0"] || [firstString isEqualToString:@"."]) { return NO; } for (int i = 0; i < tempStr.length; i++) { NSString *subString = [tempStr substringWithRange:NSMakeRange(i, 1)]; //只能输入数字和小数点 NSRange numberRange = [subString rangeOfCharacterFromSet:limitSet]; if (numberRange.location == NSNotFound) { return NO; } } //无小数点时,只能输入5个数字 NSRange pointRange = [tempStr rangeOfString:@"."]; if (pointRange.location == NSNotFound && 6 == tempStr.length) { return NO; } //存在小数点时,只能再输入两位小数,不能再输入小数点 if (pointRange.location != NSNotFound) { //只能有一个小数点 CGFloat limitlength = pointRange.location + pointRange.length; NSString *temp = [tempStr substringFromIndex:limitlength]; if ([temp rangeOfString:@"."].location != NSNotFound) { return NO; } //小数点后两位 if (limitlength + 3 == tempStr.length) { return NO; } //存在小数时点,整数不足五位时,最多只能输入5位 NSString *subTemp = [tempStr substringToIndex:pointRange.location]; if (6 == subTemp.length) { return NO; } } } return YES;}
步骤2 UITextField回调方法中调用
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ if ([string isEqualToString:@"\n"]) { return NO; } NSString *tempStr = [textField.text stringByReplacingCharactersInRange:range withString:string]; BOOL boolValue = [self limitInputString:tempStr]; return boolValue;}
http://download.csdn.net/detail/potato512/7391099
0 0
- 输入限制(输入字数或输入内容限制)
- 输入限制(输入字数)
- 限制textarea输入字数
- 输入框字数限制
- EditText限制输入字数
- 限制EditText输入字数
- textarea限制输入字数
- EditText 字数限制输入
- 中文输入字数限制
- 限制UITextView输入字数
- EditText 输入字数限制
- 限制UITextField输入字数
- 输入输限制字数
- ios限制输入字数
- UITextField 限制输入字数
- IOS 限制输入字数
- 限制UITextField 输入字数
- textarea限制输入字数
- Linux socket编程
- boost xpressive库和string_algo库
- css之div布局
- 百度地图兴趣点数据库、baidu map商户数据库、地标数据库、poi数据库
- linux总结(3)——变量的各种截取、替换、部分删除
- 输入限制(输入字数或输入内容限制)
- POJ 1200 Crazy Search
- Eulerproblem 10 for python
- 立体声平衡指示器电路
- THE LEAP-FROG 跳高者
- cocos2d-x游戏开发 跑酷(九) 源码下载及小结
- 教你解决Sublime Text中文乱码问题
- MongoDB---2.6.0的一些改动---restore
- Linux下的硬件驱动——USB设备(上)