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

      

  • 相关阅读:
    ubuntu安装谷歌浏览器
    Andoid之硬件访问服务1(让Andoid应用程序访问c库)
    JNI intArray
    JNI Hello World
    Ubuntu 14.04 Sublime Text3 Java编译运行(最简单的方法)
    Python中sys.argv的用法
    python连接mysql数据库
    python中join()函数讲解
    python中split()函数讲解
    深度学习入门教程
  • 原文地址:https://www.cnblogs.com/h-tao/p/5254857.html
Copyright © 2020-2023  润新知