首页 > 其他分享 >UITextField 限制小数输入金额

UITextField 限制小数输入金额

时间:2023-05-06 17:46:40浏览次数:36  
标签:string text length single UITextField textField 输入 小数

 

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    if (textField.text.length > 10) {
        return range.location < 11;
    }else{
        BOOL isHaveDian = YES;
        if ([textField.text rangeOfString:@"."].location==NSNotFound) {
            isHaveDian=NO;
        }
        if ([string length]>0)
        {
            unichar single=[string characterAtIndex:0];//当前输入的字符

            if ((single >='0' && single<='9') || single=='.')//数据格式正确
            {
                //首字母不能为小数点
                if([textField.text length]==0){
                    if(single == '.'){
                        [textField.text stringByReplacingCharactersInRange:range withString:@""];
                        return NO;

                    }
                }
                if([textField.text length]==1 && [textField.text isEqualToString:@"0"]){
                    if(single != '.'){
                        [textField.text stringByReplacingCharactersInRange:range withString:@""];
                        return NO;

                    }
                }
                if (single=='.')
                {
                    if(!isHaveDian)//text中还没有小数点
                    {
                        isHaveDian=YES;
                        return YES;
                    }else
                    {
                        [textField.text stringByReplacingCharactersInRange:range withString:@""];
                        return NO;
                    }
                }
                else
                {
                    if (isHaveDian)//存在小数点
                    {
                        //判断小数点的位数
                        NSRange ran=[textField.text rangeOfString:@"."];
                        NSInteger tt=range.location-ran.location;
                        if (tt <= 2){//2表示小数点后能输入两位,4就是能输入4位
                            return YES;
                        }else{
                            return NO;
                        }
                    }
                    else
                    {
                        return YES;
                    }
                }
            }else{//输入的数据格式不正确
                [textField.text stringByReplacingCharactersInRange:range withString:@""];
                return NO;
            }
        }
        else
        {
            return YES;
        }
    }
}

 

参考:https://www.cnblogs.com/fcug/p/5500349.html

标签:string,text,length,single,UITextField,textField,输入,小数
From: https://www.cnblogs.com/qingzZ/p/17378101.html

相关文章

  • 第五章 输入输出系统 5.3 中断机构和中断处理程序
    中断是多道程序得以实现的基础,是设备管理的基础;中断处理程序是I/O系统中最低的一层,是整个I/O系统的基础。一、中断简介 1.中断和陷入 中断:CPU对I/O设备发来的中断信号的响应。 陷入:由CPU内部事件(非法指令、越界、运算上溢下溢等)所引起的中断。 2.中断向量表和中断优......
  • 第五章 输入输出系统 5.2 I/O设备和设备控制器
    一、I/O设备 1.I/O设备的类型 2.设备与控制器之间的接口 设备并不是直接与CPU进行通信,而是与设备控制器通信,因此,在设备与设备控制器之间应有一接口。  ①数据信号线:在设备与控制器之间传送数据信号。双向,有缓存。  ②状态信号线:传送指示设备当前状态的信号......
  • input只能输入数字、小数的方法
    1.在input中设置type="number"这个属性可以帮助我们限制文本框输入的文本只能是数字或者小数,但是会跟随一个默认的样式,我们需要把默认样式删掉代码:<style>input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;}input[typ......
  • (原创第一篇,踩坑无数得来的,对Ai自动化测试框架很有帮助)appium自动化测试时遇到不能使用
     现在开发的前端界面使用vue或者更牛逼技术,导致使用appium或者uiautomator2做自动化测试时不能识别到元素,无法使用传统的id,name或者xpath,这时我们需要使用坐标点击文本框。有获取坐标方法,下期写一篇文章,可以在评论区提醒瑞克。fromappiumimportwebdriverimporttimeimport......
  • WPF项目中使用WInform版本的 ChromiumWebBrowser控件嵌套网页 解决中文输入法候选框定
    创建一个用户控件,后台代码:publicpartialclassCefControl:UserControl{ChromiumWebBrowserwebView=null;publicCefControl(){InitializeComponent();if(!CefSharp.Cef.IsInitialized){......
  • jquery获取input输入框中的值
    如何用javascript获取input输入框中的值HTML<inputtype="text"id="CSDN_NAME"name="CSDN_NAME"class="CSDN_NAME">一、jquery方法通过namevarname=$('input[name="CSDN_NAME"]').val();通过**id**varna......
  • 第4-0讲,entry 输入控件
    当你需要在页面上输入信息时,比如用户名和密码,那么你需要使用Entry控件importtkinterastkfromtkinterimportmessagebox#创建窗体window=tk.Tk()#设置窗体标题window.title("标签属性")#设置窗体的图标window.iconbitmap('../images/米饭.ico')#设置窗体大小windo......
  • STM32单片机引脚要职能配置为输入或者输出模式,并不能像51一样准双向,那么如何进行但总
    如题随便找个端口举例对应的程序为 难道需要写之后立即初始化为输入?然后赶紧读?然后再赶紧初始化为输出?再往外写?是的,还真他妈就是这么傻逼的操作 ......
  • 组合框行来源数据快速输入(一)
     致敬每一位奋斗者手机边亲爱的大家,好久不见!今天还是五一假期,大家都去哪里玩耍了?今天给大家分享一下组合框示例。平时我们在使用组合框时,当选择的数据没有我们需要的,那我们该怎么去添加数据源的呢?组合框的数据行来源类型有“表/查询”,“值列表”,“字段列表”我们只讲前两个类型,今......
  • [小工具] 五笔输入法
    之前用的光速五笔,有时候竟然要用掉100多M的内存。也不知道在弄什么玩意。现在换成了极品五笔。有一个小技巧可以使用:Ctrl+~的造词功能。按Ctrl+~造词后再按Ctrl+~保存。下面这个承诺很不错.郑重承诺自2001年五月问世,极品五笔已走过十个春秋了,在今后的十年里,极品......