iPad开发--UItextfield中输入类似于数学计算上的数字的方法

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
   
        NSCharacterSet*cs;
        
        cs = [[NSCharacterSet characterSetWithCharactersInString:NUMBERS] invertedSet];
        
        NSString*filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
        BOOL  basicTest = [string isEqualToString:filtered];
        // 只能输入数字小数点
        if(!basicTest) { // 不相等
            return NO;
        }
        
        if ([textField.text rangeOfString:@"."].location==NSNotFound) {
            isHaveDian=NO;
        }
        
        // 第一位必须为数字不能为小数点
        if ([string length]>0)
        {
            unichar single=[string characterAtIndex:0];//当前输入的字符
            if ((single >=‘0‘ && single<=‘9‘) || single==‘.‘)//数据格式正确
            {
                //首字母不能为0和小数点
                if([textField.text length]==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:@"."];
                            int tt=range.location-ran.location;
//                            if (tt <= 2){
//                                return YES;
//                            }else{
//                                return NO;
//                            }
                        }
                        else
                        {
                            return YES;
                        }
                    }
                }else{//输入的数据格式不正确
                    [textField.text stringByReplacingCharactersInRange:range withString:@""];
                    return NO;
                }
            }
            else
            {
                return YES;
            }
        }
}

时间: 2024-08-29 05:51:03

iPad开发--UItextfield中输入类似于数学计算上的数字的方法的相关文章

html js在页面中输入两个数计算和

费了很大功夫,之前写的跟这个差不多,但是就是不能正常运行,找不到原因,这个搞定的记录一下 1 <html> 2 <head> 3 <title></title> 4 <meta name="generator" 5 content="HTML Tidy for HTML5 (experimental) for Windows https://github.com/w3c/tidy-html5/tree/c63cc39&qu

iOS开发--UITextField限制输入文字的个数

项目需要输入框的文字最多为4个,为了实现这个功能,在网上把资料翻遍了,没有一个能用的.后来不得不自己实现,折腾了好久,终于搞定了.小技巧分享给大家. 代码如下: static constNSInteger Max_Character_Num =4; - (IBAction)onTextFieldEditingChanged:(id)sender { NSString *lang = [[UITextInputMode currentInputMode] primaryLanguage]; if

C#中Math类的计算整数的三种方法

1.Math.Round:四舍六入五取偶 引用内容 Math.Round(0.0) //0 Math.Round(0.1) //0 Math.Round(0.2) //0 Math.Round(0.3) //0 Math.Round(0.4) //0 Math.Round(0.5) //0 Math.Round(0.6) //1 Math.Round(0.7) //1 Math.Round(0.8) //1 Math.Round(0.9) //1 说明:对于1.5,因要返回偶数,所以结果为2.

iPad开发--UIPopoverController简单使用iOS7之前和iOS7之后的使用方法

一.iOS7之前的Popover的使用 对Popover进行懒加载处理 内容控制器中设置Popover弹出后的尺寸 设置显示的位置,两种情况.1 -- 给BarButtonItem设置Popover的位置; 2 -- 给其他View设置Popover的位置 二.iOS8中的Popover使用 -- 就是以modal形式展现出来,但是要设置modal的展现样式为Popover

根据输入字符串,分别计算大写,小写,数字,标点的个数

1 def count(n): 2 upp = 0 3 low = 0 4 num = 0 5 sym = 0 6 for i in n: 7 if i.isupper(): 8 upp +=1 9 elif i.islower(): 10 low +=1 11 elif i.isdigit(): 12 num +=1 13 else: 14 sym +=1 15 return "大写字母的个数是:{0}\n小写字母的个数是:{1}\n数字的个数是:{2}\n符号的个数是:{3}".f

Shell中数学计算/运算

shell中的赋值和操作默认都是字符串处理. 1)使用let(只能进行整数运算)var=1let "var+=1"echo $var输出结果为2 注意:a)let几乎支持所有的运算符b)方幂运算应使用“**”c)参数在表达式中直接访问,不必加$d)一般情况下算数表达式可以不加双引号,但是若表达式中有bash中的关键字则需加上e)let后的表达式只能进行整数运算 2)使用(())var=1((var+=1))echo $var输出结果为2注意:(())的使用方法与let完全相同 3)使用

shell 中数学计算总结

1.错误方法举例 a) var=1+1 echo $var 输出的结果是1+1,悲剧,呵呵 b) var=1 var=$var+1 echo $var 输出结果是1+1,依然悲剧,呵呵 2.正确方法 1)使用let var=1 let "var+=1" echo $var 输出结果为2,这次没有悲剧 注意: a)经我测试let几乎支持所有的运算符,在网上看到一篇文章说"let不支持++.--和逗号.(.)",但经我测试自加.自减.以及括号的优先级都得到了很好的支持

iOS开发UI篇—iPad开发中得modal介绍

一.简单介绍 说明1: 在iPhone开发中,Modal是一种常见的切换控制器的方式 默认是从屏幕底部往上弹出,直到完全盖住后面的内容为止 说明2: 在iPad开发中,Modal的使用频率也是非常高的 对比iPhone开发,Modal在iPad开发中多了一些用法 二.呈现样式 (一)什么叫呈现样式 Modal出来的控制器,最终显示出来的样子 (二)Modal常见有4种呈现样式 (1)UIModalPresentationFullScreen :全屏显示(默认) (2)UIModalPresent

iOS开发中常用的数学函数

/*---- 常用数学公式 ----*/ //指数运算 3^2 3^3 NSLog(@"结果 %.f", pow(3,2)); //result 9 NSLog(@"结果 %.f", pow(3,3)); //result 27 //开平方运算 NSLog(@"结果 %.f", sqrt(16)); //result 4 NSLog(@"结果 %.f", sqrt(81)); //result 9 //进一 NSLog(@&q