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

UITextView непреднамеренно добавляет новую строку?

У меня есть представление прокрутки, которое содержит UITextField и UITextView. Возвращаемый ключ UITextField - "Далее", и когда он нажимается, я вызываю [myTextView getFirstResponder]; Случайная новая строка вставляется в мое текстовое представление, поэтому я начинаю со второй строки. Как мне избежать этого?

Также важно отметить, что этого не происходит, когда я нажимаю непосредственно на UITextView, а не нажимаю следующий ключ.

Спасибо заранее!

4b9b3361

Ответ 1

Одним из решений для решения этого вопроса является реализация метода делегата textFieldShouldReturn:, обязательно верните NO, а не YES. Возвращая NO, новая строка не передается в текстовое поле.

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    // move to next field or whatever you need
    [myTextView becomeFirstResponder];

    return NO;
}

Ответ 2

Хорошо, это поведение связано с ошибкой в ​​iOS, когда вы становитесь первым ответчиком в пределах одного цикла запуска, используя следующую кнопку. Чтобы это произошло, вы должны сделать это вручную. Сначала отставьте первого ответчика от textFied, а затем сделайте textView в качестве первого ответчика. как это. Реализовать этот метод делегата.

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
[textView performSelector:@selector(becomeFirstResponder) withObject:nil afterDelay:0.0];
return YES;
}