Подтвердить что ты не робот

Как читать Количество строк в UITextView

Я использую UITextView В моем представлении у меня есть требование подсчитать количество строк, содержащихся в textview am, используя следующую функцию для чтения '\n'. Однако это работает только тогда, когда клавиша возврата нажата с клавиатуры, но в случае строки warapper (когда я печатаю непрерывные символы, я не получаю новую строку char). Как читать новый char при изменении строки без нажатия клавиши возврата? Никто не знает, как.. пожалуйста, поделитесь им. Я ссылаюсь на эту ссылку Ссылка

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range 
 replacementText:(NSString *)text
{
    // Any new character added is passed in as the "text" parameter
    if ([text isEqualToString:@"\n"]) {
        // Be sure to test for equality using the "isEqualToString" message
        [textView resignFirstResponder];

        // Return NO so that the final '\n' character doesn't get added
        return NO;
    }
    // For any other character return YES so that the text gets added to the view
    return YES;
}
4b9b3361

Ответ 1

Вы можете посмотреть свойство contentSize вашего UITextView, чтобы получить высоту текста в пикселях и разделить на расстояние между строками шрифта UITextView, чтобы получить количество текстовых строк в общем UIScrollView (вкл. и выкл.), включая обернутый и разбитый текст.

Ответ 2

В iOS 7 это должно быть точно:

float rows = (textView.contentSize.height - textView.textContainerInset.top - textView.textContainerInset.bottom) / textView.font.lineHeight;

Ответ 3

Только для справки...

Другой способ получить количество строк, а также контент, - это разделение строк в массиве с использованием того же метода, который указан в редакторе ответов BoltClock.

NSArray *rows = [textView.text componentsSeparatedByString:@"\n"];

Вы можете выполнять итерацию по массиву, чтобы получить содержимое каждой строки, и вы можете использовать [количество строк] для получения точного количества строк.

Следует иметь в виду, что пустые строки также будут учитываться.