- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
NSInteger maxLineNum = 4;
NSString *textString = @"Text";
CGSize fontSize = [textString sizeWithAttributes:@{NSFontAttributeName:textView.font}];
NSString* newText = [textView.text stringByReplacingCharactersInRange:range withString:text];
CGSize tallerSize = CGSizeMake(textView.frame.size.width-15,textView.frame.size.height*2);
CGSize newSize = [newText boundingRectWithSize:tallerSize
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName: textView.font}
context:nil].size;
NSInteger newLineNum = newSize.height / fontSize.height;
if ([text isEqualToString:@"\n"]) {
newLineNum += 1;
}
if ((newLineNum <= maxLineNum)
&& newSize.width < textView.frame.size.width-15)
{
return YES;
}else{
return NO;
}
}