zoukankan      html  css  js  c++  java
  • iOS UITextField 数字输入限制 只能输入数字和小数点,只能有两位小数

    @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     else
    59     {
    60         return YES;
    61     }
    62 }
    1 - (void)showError:(NSString *)errorString
    2 {
    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 } 
  • 相关阅读:
    INT 3 中断调试处理流程
    调试事件的处理结束
    [IDA] 自动下载符号
    06 内存断点
    05 软件断点
    C#2.0新增功能02 泛型
    C#2.0新增功能01 分部类与分部方法
    xBIM 实战04 在WinForm窗体中实现IFC模型的加载与浏览
    xBIM 实战03 使用WPF技术实现IFC模型的加载与浏览
    xBIM 实战02 在浏览器中加载IFC模型文件并设置特效
  • 原文地址:https://www.cnblogs.com/codemakerhj/p/5130877.html
Copyright © 2011-2022 走看看