iOS【textView或者textField文本輸入字數限制】

【textView文本輸入 字數限制】orm

// 監聽文本改變  觸發時機(經過發送通知完成)字符串

-(void)textViewEditChanged:(NSNotification *)obj{input

    

    UITextView *textView = (UITextView *)obj.object;string

    

    NSAttributedString *toBeString = textView.attributedText;it

    

//    NSLog(@" - -%@",[_contentView.textInputMode primaryLanguage]);io

    //方法已經不推薦使用了,直接獲取textinputMode時表情鍵盤不會響應object

    NSString *lang = [[UITextInputMode currentInputMode] primaryLanguage]; // 鍵盤輸入模式select

    

    if (toBeString.length > MAXLenth)//MAXLenth定義的宏方法

    {im

        [self showHUDWithText:@"輸入字數限制300"];

    }

    

    if ([lang isEqualToString:@"zh-Hans"]) { // 簡體中文輸入,包括簡體拼音,健體五筆,簡體手寫

        UITextRange *selectedRange = [textView markedTextRange];

        //獲取高亮部分

        UITextPosition *position = [textView positionFromPosition:selectedRange.start offset:0];

        // 沒有高亮選擇的字,則對已輸入的文字進行字數統計和限制

        if (!position) {

            if (toBeString.length >= MAXLenth) {

                textView.attributedText = [toBeString attributedSubstringFromRange:NSMakeRange(0, MAXLenth)];

                textView.font = [UIFont systemFontOfSize:14.f];

                

            }

            

            if (textView.attributedText.length > 300)

            {

                self.lenthLabel.text = @"已輸入字數:300";

               

            }

            else self.lenthLabel.text = [NSString stringWithFormat:@"已輸入字數:%@",@(textView.attributedText.length)];

        }

        // 有高亮選擇的字符串,則暫不對文字進行統計和限制

        else{

        }

    }

    // 中文輸入法之外的直接對其統計限制便可,不考慮其餘語種狀況

    else{

        

        if (toBeString.length > MAXLenth) {

            textView.attributedText = [toBeString attributedSubstringFromRange:NSMakeRange(0, MAXLenth)];

            textView.font = [UIFont systemFontOfSize:14.f];

        }

        

        if (textView.attributedText.length > 300)

        {

            self.lenthLabel.text = @"已輸入字數:300";

            

        }

        else self.lenthLabel.text = [NSString stringWithFormat:@"已輸入字數:%@",@(textView.attributedText.length)];

    }

}

相關文章
相關標籤/搜索