iOS UITextField 只能输入数字和小数点,只能有两位小数

               

转自:http://blog.csdn.net/chengyakun11/article/details/8494292

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

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

猜你喜欢

转载自blog.csdn.net/gfuugff/article/details/86551423