1. 程式人生 > >iOS 設置TextView 只能輸入兩行

iOS 設置TextView 只能輸入兩行

ini ret uifont chang alloc setup maximum extc set

http://www.itstrike.cn/Question/c51c60a2-4ea9-4902-8ef9-0f14d1fcba9b.html

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

UITextView * view = [[UITextView alloc]init];

view.frame = CGRectMake(20, 30, [UIScreen mainScreen].bounds.size.width-40, [UIScreen mainScreen].bounds.size.height-30);

view.font= [UIFont systemFontOfSize:15];

view.delegate = self;

[self.view addSubview:view];

view.textContainer.maximumNumberOfLines = 2;

}

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text

{

NSString *newText = [textView.text stringByReplacingCharactersInRange:range withString:text];

NSDictionary *textAttributes = @{NSFontAttributeName : textView.font};

CGFloat textWidth = CGRectGetWidth(UIEdgeInsetsInsetRect(textView.frame, textView.textContainerInset));

textWidth -= 2.0f * textView.textContainer.lineFragmentPadding;

CGRect boundingRect = [newText boundingRectWithSize:CGSizeMake(textWidth, 0)

options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading

attributes:textAttributes

context:nil];

NSUInteger numberOfLines = CGRectGetHeight(boundingRect) / textView.font.lineHeight;

return newText.length <= 500 && numberOfLines <= 2;

}

iOS 設置TextView 只能輸入兩行