これが私が過去に行った方法です。
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
// limit the number of lines in textview
NSString* newText = [mytextView.text stringByReplacingCharactersInRange:range withString:text];
// pretend there's more vertical space to get that extra line to check on
CGSize tallerSize = CGSizeMake(mytextView.frame.size.width-15, mytextView.frame.size.height*2);
CGSize newSize = [newText sizeWithFont:mytextView.font constrainedToSize:tallerSize lineBreakMode:UILineBreakModeWordWrap];
if (newSize.height > mytextView.frame.size.height)
{
NSLog(@"two lines are full");
return NO;
}
// dismiss keyboard and send comment
if([text isEqualToString:@"\n"]) {
[mytextView resignFirstResponder];
return NO;
}
return YES;
}
幸運を。
編集:
次の方法を試して、これがうまくいくかどうかを確認してください。行数を任意の数に変更するだけです。
(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if([text isEqualToString:@"n"]) {
rows++;
if(rows >= maxNumberOfLines){
//Exit textview
return NO;
}
}
return YES;
これがうまくいくかどうか教えてください。