iphone UITextView вручную регистрирует прикосновения - PullRequest
1 голос
/ 11 августа 2009

Я сейчас работаю над приложением с такой структурой:

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

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

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

Я пробовал:

[canvasView.hiddenTextView touchchesBegan: затрагивает withEvent: событие]

из метода touches Begin MainViewController. Я сделал это для прикосновений. Начал, переехал и закончил.

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

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

1 Ответ

0 голосов
/ 11 августа 2009
[canvasView.hiddenTextView becomeFirstResponder];

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

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

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

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

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

...