键盘只能输入数字(或其它特定的规定字符)
2016-05-20 15:54
453 查看
在开发中在特定的情况下只能输入一些我们规定的字符,不如:0-9,其他字符输入输入无效。
一般情况下,UITextField的Keyboard设备为Number Pad,就可以满足了,不过有的时候,设备安装第三方的输入法,虽然点击输入框弹出的键盘都是数字,可是还会有其他的按键可以调成中文活着英文,我们不排除不乖的用户会这么做。所以最好的办法就是。。。。。。
当当当当,
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string {
return [self
validateNumber:string];
}
- (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;
break;
}
i++;
}
return res;
}
我不是雷锋,不要谢我
一般情况下,UITextField的Keyboard设备为Number Pad,就可以满足了,不过有的时候,设备安装第三方的输入法,虽然点击输入框弹出的键盘都是数字,可是还会有其他的按键可以调成中文活着英文,我们不排除不乖的用户会这么做。所以最好的办法就是。。。。。。
当当当当,
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string {
return [self
validateNumber:string];
}
- (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;
break;
}
i++;
}
return res;
}
我不是雷锋,不要谢我
相关文章推荐
- [转载]Activity中ConfigChanges属性的用法
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- QQ输入法自动删除其它输入法的解决方法
- Access中字段上自动打开的输入法的解决方法
- C#中Winfrom默认输入法的设置方法
- 火狐textarea输入法的bug的触发及解决
- 讲解iOS开发中基本的定位功能实现
- iOS中定位当前位置坐标及转换为火星坐标的方法
- js判断客户端是iOS还是Android等移动终端的方法
- iOS应用开发中AFNetworking库的常用HTTP操作方法小结
- iOS应用中UISearchDisplayController搜索效果的用法
- IOS开发环境windows化攻略
- iOS应用中UITableView左滑自定义选项及批量删除的实现