zoukankan      html  css  js  c++  java
  • iOS 限制输入框不能输入中文

    开发中遇到这个问题,想着还是总结下,刚开始只是限制UITextField的键盘为

    UIKeyboardTypeASCIICapable,可是当用户切换了中文键盘后依然没解决问题,于是我给输入框加了监听事件,获取输入框最新的输入内容,检测输入的内容中是否含有中文,如果有中文就替换成空字符串,具体实现如下:

    infoView.userTF.keyboardType = UIKeyboardTypeASCIICapable;

     //监听输入内容

    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(textFiledEditChanged:)

                                                    name:@"UITextFieldTextDidChangeNotification"

                                                  object:infoView.userTF];

    -(void)textFiledEditChanged:(NSNotification*)notification

    {

        UITextField*textField = notification.object;

        NSString*str = textField.text;

        for (int i = 0; i<str.length; i++)

        {

            NSString*string = [str substringFromIndex:i];

            NSString *regex = @"[u4e00-u9fa5]{0,}$"; // 中文

            // 2、拼接谓词

            NSPredicate *predicateRe1 = [NSPredicate predicateWithFormat:@"self matches %@", regex];

            // 3、匹配字符串

            BOOL resualt = [predicateRe1 evaluateWithObject:string];

            

            if (resualt)

            {

        //是中文替换为空字符串

                str =  [str stringByReplacingOccurrencesOfString:[str substringFromIndex:i] withString:@""];

            }

        }

        textField.text = str;

    }

  • 相关阅读:
    Git 思想和工作原理
    scala 内部类
    nginx -stream(tcp连接)反向代理配置 实现代理ldap转发
    【转载】Keepalived安装使用详解
    【转载】Linux内存中buffer和 cached的比较
    【转载】Vmware Vconverter从物理机迁移系统到虚拟机P2V
    InfluxDB 备份和恢复
    Mongodb 主从同步
    Redis主从同步
    ActiveMQ 高可用集群安装、配置(ZooKeeper + LevelDB)
  • 原文地址:https://www.cnblogs.com/cui-cui/p/7545692.html
Copyright © 2011-2022 走看看