sizeWithFont:constrainedToSize: не считается "\n" в NSString
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
NSString *substring = textView.text;
substring = (text.length == 0 && range.length == 1) ?
[substring substringToIndex: substring.length-1] : [substring stringByAppendingString: text];
CGSize size = [substring sizeWithFont:textView.font
constrainedToSize:CGSizeMake(textView.frame.size.width, 200.0)];
CGFloat height = MAX(size.height, firstHeight);
if(height != lastHeight)
{
CGFloat y = height - lastHeight;
CHANGE_HEIGHT(textView, height);
lastHeight = height;
}
return YES;
}
Проблема в том, что sizeWithFont:constrainedToSize:
дает мне неправильный рост. Например, если текст " Hello \n
" sizeWithFont
не будет считать " \n
", так что " Привет " и " Hello \n
" Тексты находятся на одной высоте.
Будем благодарны за любую необходимую помощь!
1 ответ
Не связано, но как вы получаете свой substring
игнорирует диапазон, где текст изменен.
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
NSString *textToMeasure = [textView.text stringByReplacingCharactersInRange:range withString:text];
if ([textToMeasure hasSuffix:@"\n"]) {
textToMeasure = [NSString stringWithFormat:@"%@-", textView.text];
...
}