当用户键入/删除字符时,我尝试在UITextView
中以编程方式调整objective c
的高度。只要用户不一次删除多行,它就能很好地适用于我。因此,主要问题是如何在UITextView
中检测多行删除并获得此行数(之后调整高度很容易)。
答案 0 :(得分:0)
我不知道多行,但是这个方法可以帮助你了解UITextView中字符范围的变化
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
char toDelete = [textView.text characterAtIndex:range.location];
int duplicateCharCount = 0;
for(int i =range.location-1; i>=0; i--) {
if([textView.text characterAtIndex:i] == toDelete) {
duplicateCharCount++;
} else {
break;
}
}
NSRange newRange = NSMakeRange(0, range.location - duplicateCharCount);
[textView setText:[textView.text substringWithRange:newRange]];
return NO;
} else {
return YES;
}
但是对于您的场景,您可以通过了解textview的帧大小来计算行数:
UIFont *font = [UIFont boldSystemFontOfSize:11.0];
CGSize size = [string sizeWithFont:font
constrainedToSize:myUITextView.frame.size
lineBreakMode:UILineBreakModeWordWrap]; // default mode
float numberOfLines = size.height / font.lineHeight;
答案 1 :(得分:0)
在textViewDidChange
的{{1}}委托方法中使用以下代码:
UITextView