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];
    }
    

      

  • 相关阅读:
    假期学习2
    假期学习1
    读《需求工程--软件建模和分析》一
    数据清洗
    Mapreduce实例——WordCount
    SEVEN python环境jieba分词的安装 以即热词索引
    SIX Spark Streaming 编程初级实践
    FIVE Spark SQL 编程初级实践
    FOUR spark-shell 交互式编程
    THREE SPAKR
  • 原文地址:https://www.cnblogs.com/h-tao/p/5254857.html
Copyright © 2011-2022 走看看