iPhone: почему при отправке сообщения resignFirstResponder клавиатура удаляется? - PullRequest
1 голос
/ 07 января 2011

Это вопрос, состоящий из двух частей:

1) Зачем нам нужно, чтобы UITextField первым отвечал в первую очередь?Он будет работать, даже если он не первый респондент.

2) Почему клавиатура исчезает, когда мы отправляем сообщение resignFirstResponder?Способ также удаляет клавиатуру как побочный эффект?Почему в UITextView нет отдельного метода для инструктирования по удалению клавиатуры?

Ответы [ 2 ]

3 голосов
/ 07 января 2011

Why do you want the resignFirstResponder message not to remove the keyboard?

  1. UITextField становится активным (курсор мигает внутри текстового поля и появляется клавиатура), только когда вы отправляете сообщение intoFirstResponder или нажимаете внутри текстового поля.

  2. Сообщение resignFirstResponder делает текстовое поле неактивным (курсор удаляется из текстового поля). Если курсор находится не в текстовом поле, то зачем вам вообще нужна клавиатура? Куда вы отправите текст, набранный на клавиатуре? Вот почему клавиатура исчезает автоматически, когда текстовое поле подает в качестве первого респондента.

    resignFirstResponder - это метод в UITextView, чтобы дать ему команду удалить клавиатуру.

0 голосов
/ 07 января 2011

вы также можете отправить resignFirstResponder в TextView, но на самом деле вы могли бы спросить, нет ли метода делегата для textview, такого как существует для текстового поля, т.е. Таким образом, отвечая на ваш вопрос, так как текстовое представление является многострочным, нажатие возврата переводит курсор на следующую строку. Вам нужно явно разместить кнопку «Готово» в отдельном виде над клавиатурой, нажав на нее, вы можете отправить сообщение resignFirstResponder в textview.

...