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

      

  • 相关阅读:
    HDU 3047 Zjnu Stadium 带权并查集
    Arrays.sort()
    cache与负载均衡
    Java实现第八届蓝桥杯包子凑数
    Java实现第八届蓝桥杯日期问题
    Java实现第八届蓝桥杯日期问题
    Java实现第八届蓝桥杯取数位
    Java实现第八届蓝桥杯取数位
    Java实现第八届蓝桥杯纸牌三角形
    Java实现第八届蓝桥杯承压计算
  • 原文地址:https://www.cnblogs.com/h-tao/p/5254857.html
Copyright © 2011-2022 走看看