Мне нужно определить высоту UITextView сверху вниз до курсора. Я обрезаю текст, который он содержит (поэтому он подходит только к курсору), а затем использую метод NSString sizeWithFont:constrainedToSize:lineBreakMode:
для определения высоты, например:
NSRange range;
range.location = noteTextView.selectedRange.location;
range.length = noteTextView.text.length - range.location;
NSString *string = [noteTextView.text stringByReplacingCharactersInRange:range withString:@""];
CGSize size = [string sizeWithFont:noteTextView.font
constrainedToSize:noteTextView.frame.size
lineBreakMode:UILineBreakModeWordWrap];
NSLog(@"height is: %f \n", size.height);
Он делает это каждый раз, когда я что-то печатаю.
Проблема в том, что когда я смотрю NSLog во время ввода, он не регистрирует изменение высоты, пока я не наберу 4 символа в новой строке. Это как если бы метод sizeWithFont
содержал ровно четыре символа. Вот пара скриншотов, показывающих, что я имею в виду:
Может кто-нибудь сказать мне, что происходит?