zoukankan      html  css  js  c++  java
  • UItextfield 动态限制输入的字数

    @property (nonatomic, strong) UITextField *txtName;

    - (void)viewDidLoad {

        [super viewDidLoad];

    //UIControlEventEditingChanged(包括中文和英文等输入法)
    [self.txtName addTarget:self action:@selector(limitLength:) forControlEvents:UIControlEventEditingChanged];

    }

    //包括中文和英文等输入法判断,不然会因为联想记忆而崩溃

    -(void)limitLength:(UITextField *)sender

    {
        bool isChinese;//判断当前输入法是否是中文
        if ([[[UITextInputMode currentInputMode] primaryLanguage] isEqualToString: @"en-US"]) {
            isChinese = false;
        }
        else
        {
            isChinese = true;
        }
         
        if(sender == self.txtName) {
            // 8位
            NSString *str = [[self.txtName text] stringByReplacingOccurrencesOfString:@"?" withString:@""];
            if (isChinese) { //中文输入法下
                    UITextRange *selectedRange = [self.txtName markedTextRange];
                    //获取高亮部分
                    UITextPosition *position = [self.txtName positionFromPosition:selectedRange.start offset:0];
                    // 没有高亮选择的字,则对已输入的文字进行字数统计和限制
                    if (!position) {
                        NSLog(@"汉字");
                        if ( str.length>=9) {
                            NSString *strNew = [NSString stringWithString:str];
                            [self.txtName setText:[strNew substringToIndex:8]];
                        }
                    }
                    else
                    {
                        NSLog(@"输入的英文还没有转化为汉字的状态");
                     
                    }
            }else{
                NSLog(@"str=%@; 本次长度=%d",str,[str length]);
                if ([str length]>=9) {
                    NSString *strNew = [NSString stringWithString:str];
                    [self.txtName setText:[strNew substringToIndex:8]];
                }
            }
        }
    }
  • 相关阅读:
    ERROR 1290 (HY000): The MySQL server is running with&nbs
    mysql ERROR 1045 (28000): Access denied for user解决方法
    今天,启动MySQL服务器失败,
    centos 7 安装卸载apache(httpd)服务
    Kafka——彻底删除Topic
    HBase管理与监控——彻底删除HBase数据
    phoenix创建表失败:phoenixIOException: Max attempts exceeded
    Kafka——指定位移消费(回溯消费)
    Java日志体系(八)最佳实践
    Java日志体系(七)日志框架切换
  • 原文地址:https://www.cnblogs.com/niexiaobo/p/4597958.html
Copyright © 2011-2022 走看看