zoukankan      html  css  js  c++  java
  • IOS 键盘 禁止输入字母

    在开发中有时候需要数字键盘,但是设置textfield为默认数字键后,

    在模拟器上如果用电脑键盘仍然可以输入字母,

    在真机上如果使用搜狗等其他输入法也可能会出现可以输入字母的情况。解决方法如下,在textfield的代理方法中实现

     1 #pragma mark - UITextFieldDelegate
     2 - (BOOL)textField:(UITextField *)theTextField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
     3     //禁止用户输入字母
     4     NSCharacterSet *myCharSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
     5     for (int i = 0; i < [string length]; i++) {
     6         unichar c = [string characterAtIndex:i];
     7         if (![myCharSet characterIsMember:c]) {
     8             return NO;
     9         }
    10     }
    11     
    12     //处理第一个数字为小数点或者0的情况
    13     NSString *text = theTextField.text;
    14     NSString *passcode = [text stringByReplacingCharactersInRange:range withString:string];
    15     if ([passcode hasPrefix:@"."])
    16     {
    17         return NO;
    18     }
    19     
    20     
    21     //处理小数点两位后的情况
    22     if (!([theTextField.text rangeOfString:@"."].location == NSNotFound)) {
    23         NSArray *comArray = nil;
    24         comArray = [passcode componentsSeparatedByString:@"."];
    25         if (([comArray count] > 1) && ([comArray[1] length] > 2))
    26         {
    27             return NO;
    28         }
    29         
    30     }
    31     
    32     //处理两个以上小数点的情况
    33     if ([string isEqualToString:@"."])
    34     {
    35         //        if ([text containsString:@"."])
    36         if(!([text rangeOfString:@"."].location == NSNotFound))
    37         {
    38             return NO;
    39         }
    40     }
    41     
    42     return YES;
    43 }
  • 相关阅读:
    nginx缓存
    java 常用命令工具
    shell流程控制--循环语句
    Python 文档 涉及词汇
    python 学习网站
    python web入门程序
    编译安装 Python3.6.1
    正则表达式与grep
    编译安装 Nginx1.12.1
    查看进程号
  • 原文地址:https://www.cnblogs.com/zhhl/p/5191818.html
Copyright © 2011-2022 走看看