iOS开发 UITextField限制只能输入指定位数的小数和整数

#pragma mark - UITextFieldDelegate Methods

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

{

    //判断只能输入一个小数点

    if([string isEqualToString:@"."]&&[textField.text containsString:@"."])

    {

        returnNO;

    }

    //只能输入10位小数

    intintegerLength =10;

    //只能输入2位小数

    intdecimalLength =2;

    if([textField.text containsString:@"."])

    {

        NSRange pointRange =[textField.text rangeOfString:@"."];

        if(textField.text.length - pointRange.location ==(decimalLength +1))

        {

            if(range.location > pointRange.location)

            {

                if(string.length >0)

                {

                    returnNO;

                }

            }

            else

            {

                if(textField.text.length >(integerLength + decimalLength +1)&& string.length >0)

                {

                    returnNO;

                }

            }

        }

    }

    else

    {

        if([string isEqualToString:@"."])

        {

            if(textField.text.length - range.location <(decimalLength +1))

            {

                returnYES;

            }

        }

        if(textField.text.length + string.length > integerLength)

        {

            returnNO;

        }

    }

    return YES;

}
2574109-d7c1bdf480be5269.jpg
图片发自简书App

猜你喜欢

转载自blog.csdn.net/weixin_34304013/article/details/87594845