UITextView непреднамеренно добавляет новую строку?
У меня есть представление прокрутки, которое содержит UITextField и UITextView. Возвращаемый ключ UITextField - "Далее", и когда он нажимается, я вызываю [myTextView getFirstResponder]; Случайная новая строка вставляется в мое текстовое представление, поэтому я начинаю со второй строки. Как мне избежать этого?
Также важно отметить, что этого не происходит, когда я нажимаю непосредственно на UITextView, а не нажимаю следующий ключ.
Спасибо заранее!
Ответы
Ответ 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;
}