zoukankan      html  css  js  c++  java
  • textView输入中文时和高亮英文输入法时的字数统计

    统计字数

    1、首先注册监听

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textViewEditChanged:) name:@"UITextViewTextDidChangeNotification" object:_textView];
    

      

    2、实现监听方法

    - (void)textViewEditChanged:(NSNotification *)obj{
        
        UITextView *textField = (UITextView *)obj.object;
        
        NSLog(@"========%@",textField.text);
        
        NSString *toBeString = textField.text;
        NSString *lang = [[UITextInputMode currentInputMode] primaryLanguage]; // 键盘输入模式
        if ([lang isEqualToString:@"zh-Hans"]) { // 简体中文输入,包括简体拼音,健体五笔,简体手写
            UITextRange *selectedRange = [textField markedTextRange];
            //获取高亮部分
            UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];
            // 没有高亮选择的字,则对已输入的文字进行字数统计和限制
            if (!position) {
                if (toBeString.length > 10) {
                    textField.text = [toBeString substringToIndex:10];
                    
                    [[[UIAlertView alloc] initWithTitle:@"dsfsa" message:@"msg" delegate:self cancelButtonTitle:nil otherButtonTitles:@"SURE", nil] show];
                    
                    [self.textView resignFirstResponder];
                }
            }
            // 有高亮选择的字符串,则暂不对文字进行统计和限制
            else{
                
            }
        }
        // 中文输入法以外的直接对其统计限制即可,不考虑其他语种情况
        else{
            if (toBeString.length > 10) {
                textField.text = [toBeString substringToIndex:10];
                
                [[[UIAlertView alloc] initWithTitle:@"dsfsa" message:@"msg" delegate:self cancelButtonTitle:nil otherButtonTitles:@"SURE", nil] show];
            }
        }
        
    }
    

      

    3、最后注销监听者

    - (void)dealloc{
        [[NSNotificationCenter defaultCenter] removeObserver:self name:@"UITextViewTextDidChangeNotification" object:_textView];
    }
    

      

  • 相关阅读:
    20200929-git地址
    20200917-1 每周例行报告
    20200917-2 词频统计
    20200917-3 白名单
    20200910-1 每周例行报告
    20200910-2 博客作业
    20200924-3 单元测试,结对
    20200924-2 功能测试
    20200924-5 四则运算试题生成,结对
    20200924-4 代码规范,结对要求
  • 原文地址:https://www.cnblogs.com/h-tao/p/5254857.html
Copyright © 2011-2022 走看看