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

      

  • 相关阅读:
    八月十四日学习报告
    八月二十一学习报告
    八月二十三学习报告
    八月十七日学习报告
    八月二十二学习报告
    八月十六日学习报告
    八月十九学习报告
    八月二十学习报告
    八月十五日学习报告
    每日日报2020.11.4 1905
  • 原文地址:https://www.cnblogs.com/h-tao/p/5254857.html
Copyright © 2020-2023  润新知