Отправить UIEvent с устройства iOS UIView на внешний экран UIView - PullRequest
3 голосов
/ 09 сентября 2011

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

Внешний экран будет иметь своего рода указатель мыши, чтобы представлять взаимодействие, так как для своих действий пользователю потребуется точка отсчета на экране. Это может создать препятствия для руководства пользователя, но я перейду эту гору, когда доберусь до нее. Надеюсь, я найду способ сделать этот предмет не похожим на мышь. Пользователь будет взаимодействовать с устройством как своего рода трекпад.

Я использую окно на экране устройства с подклассом «sendEvent» для перехвата сенсорных событий. Я пытаюсь вручную просмотреть иерархию представлений для представлений, которые должны получать входные данные. Найти представление, с которым я хочу поговорить, не сложно. Для классов на основе UIControl я могу вызвать "sendActionsForControlEvents", чтобы отправить соответствующие сообщения для элемента управления. Это может потребовать ласки, но пока это не главная проблема.

Для событий пользовательского интерфейса для touchesBegan, touchesMoved и т. Д. У меня нет приличного способа подделать информацию UIEvent. Я не могу вызвать эти функции, если у меня нет UIEvent, и у меня, похоже, нет никакого способа создать объект UIEvent. UIEvent из sendEvent не имеет позиции, которая совпадает с позицией указателя на дополнительном экране (по крайней мере), так что простая передача его не даст мне то, что я хочу.

Есть ли законный способ синтеза этой информации?

...