我正在使用 AirPlay 开发一个应用程序,我需要一种方法让主屏幕上的触摸充当我外部屏幕上 UI 上的触摸,以便与大量以前存在的自定义 UI 元素兼容。重建 UI 元素比找到将触摸从一个视图转换到另一个视图的方法要困难几个数量级。
外部屏幕将具有一种鼠标指针来表示交互,因为用户需要屏幕上的一个参考点来执行他们的操作。这可能会造成用户界面指南障碍,但当我到达时我会越过那座山。希望我能找到一种方法使这个项目足够不像鼠标。用户将作为一种触控板与设备进行交互。
我在设备屏幕上使用一个带有“sendEvent”子类的窗口来捕获触摸事件。我正在尝试手动遍历需要接收输入的视图的视图层次结构。找到我想与之交谈的观点并不难。对于基于 UIControl 的类,我可以调用“sendActionsForControlEvents”来为控件发送适当的消息。这可能需要一些爱抚,但目前这不是主要问题。
对于 touchesBegan、touchesMoved 等的 UI 事件。我没有一个像样的方法来伪造 UIEvent 信息。除非我有 UIEvent,否则我无法调用这些函数,而且我似乎没有任何方法可以创建 UIEvent 对象。sendEvent 中的 UIEvent 没有与辅助屏幕上的指针位置匹配的位置(至少),所以简单地传递它不会给我我想要的东西。
是否有任何合法的方式来合成这些信息?