iPhone UITextView вручную регистрирует касания кольца
-
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
.)