iPhone UITextView вручную регистрирует касания кольца

StackOverflow https://stackoverflow.com/questions/1259105

  •  12-09-2019
  •  | 
  •  

Вопрос

В настоящее время я работаю над приложением с этой структурой:

У меня есть контроллер представления, который мы назовем MainViewController, который обрабатывает все события касания для приложения.MainViewController имеет в качестве переменной экземпляра представление под названием CanvasView.CanvasView имеет UITextView, называемый HiddenTextView.

Есть и другие невидимые представления и тому подобное, поэтому UITextView не первый, кто регистрирует касания.

Как мне заставить UITextView регистрировать касания в этой конфигурации?В частности, чтобы сделать выбор из поля автокоррекции (на самом деле это выбор японского кандзи, но я предполагаю, что это аналогичный механизм).

Я пробовал:

[canvasView.hiddenTextView touchesBegan:touches withEvent:event]

из метода touchesbegan MainViewController.Я сделал это для касанийНачало, Перемещение и Завершение.

Я думаю, что это действительно сработало для одного из 50 или около того пробежек, которые я пробовал, но я не знаю, что изменилось.

Есть идеи, как я могу заставить это работать?

Это было полезно?

Решение

[canvasView.hiddenTextView becomeFirstResponder];

вероятно, сделает то, что вы хотите.

Цепочка ответов на iPhone — немного сложная штука.Я считаю, что обычно легче избежать перекрытия элементов управления, чтобы в каждом конкретном случае было совершенно однозначно, какой элемент управления должен получать входные данные от каких касаний.

Если вы перекрываете множество элементов управления и часто переключаетесь между скрытыми или видимыми, это хороший знак того, что вы, возможно, захотите просто реализовать больше подклассов UIViewController, и переключайтесь между ними вместо замены элементов управления и вывода.Другой вариант — создать собственные подклассы UIView и вместо этого поменяйте их местами - я имею в виду фактически удалить старый из подпредставления (не скрывая его) и добавить новый.

Конечно, бывают случаи, когда скрыть/показать намного проще, чем создавать подклассы.

Надеюсь, это поможет.Ссылка: Apple UIResponder документы.(Обратите внимание, что любой UIViewController или UIView является подклассом UIResponder.)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top