#pragma mark - textView代理方法
-
(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
if ([text isEqualToString:@"\n"]) {
[textView resignFirstResponder];//按回车取消第一相应者
return NO;
}
return YES;
} -
(BOOL)textViewShouldBeginEditing:(UITextView *)textView
{
提示Label.hidden = YES;//开始编辑时
return YES;
} -
(BOOL)textViewShouldEndEditing:(UITextView *)textView
{//将要停止编辑(不是第一响应者时)
if (textView.text.length == 0) {
提示Label.hidden = NO;;
}
return YES;
} -
(void)textViewDidChange:(UITextView *)textView
{
UITextRange *selectedRange = [textView markedTextRange];
//获取高亮部分
UITextPosition *pos = [textView positionFromPosition:selectedRange.start offset:0];//如果在变化中是高亮部分在变,就不要计算字符了
if (selectedRange && pos) {
return;
}NSUInteger count = textView.text.length;
if (count > MAXVALUE) {
NSRange rangeIndex = [textView.text rangeOfComposedCharacterSequenceAtIndex:MAXVALUE]; if (rangeIndex.length == 1) { textView.text = [textView.text substringToIndex:MAXVALUE]; } else { NSRange rangeRange = [textView.text rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, MAXVALUE)]; textView.text = [textView.text substringWithRange:rangeRange]; } [showMessage showWaring:[NSString stringWithFormat:@"字数不能多于%d个字", MAXVALUE]]; _numberLabel.text = [NSString stringWithFormat:@"%ld/%ld", (long)MAXVALUE, (long)MAXVALUE];
}
else {
_numberLabel.text = [NSString stringWithFormat:@"%ld/%ld", (unsigned long)count, (long)MAXVALUE];
}
}