У меня есть экран с несколькими UITextField
с и UITextView
с.
Несмотря на то, что «официальный» способ завершить редактирование UITextField
- это прикоснуться к клавише «Готово» на клавиатуре, а «официальный» метод для UITextView
- прикоснуться к внешней кнопке «Готово» - и я поддерживает оба - я не могу запретить пользователю переключаться на другое текстовое поле или текстовое представление, просто прикоснувшись к этому другому элементу управления.
Это прекрасно работает, если текущий редактируемый элемент управления - UITextField
. Когда пользователь касается второго элемента управления, для текущего текстового поля вызывается TextFieldDidEndEditing:
, и я могу обработать данные в этом поле.
Однако, если текущим элементом управления является UITextView
, когда пользователь касается другого элемента управления, ни textViewShouldEndEditing
, ни textViewDidEndEditing
не вызываются. Единственный способ вызвать их - это сделать явный ResignFirstResponder
при касании второго элемента управления, но это приводит к тому, что клавиатура отклоняется, поэтому новое касание эффективно игнорируется (пользователь должен снова коснуться нового поля). возобновить редактирование).
Есть ли способ заставить UITextView
вести себя как UITextField
при касании другого элемента управления?