我有一个使用C#编写的iPad应用程序,其中包含自定义UIView,可以通过触摸和Apple Pencil触摸进行输入。我正在尝试集成对轨迹板/鼠标间接(光标或“指针”)的支持。
我使用HoverGestureRecognizer使悬停功能正常工作。我使用普通的触摸Began/Moved/Ended/Cancelled事件,并检查.type == .indirectPointer,然后检查事件.ModifierFlags中是否设置了控制键修饰符,或者event.ButtonMask == secondary来使右键和控制键正常工作。
我花费了很多时间在Apple Developer网站上搜索文档,从这里开始并进行扩展:
- UIApplicationSupportsIndirectInputEvents 一些方式我尝试过,但都没有找到系统调用的API,当发生双指触控板滚动(或鼠标滚轮滚动)时。 (在另一个视图中,即ScrollView,当我进行双指滚动时,我可以获取ScrollView的滚动事件,因为这是iPadOS 13.4+中ScrollView的内置功能,但我的自定义视图不是ScrollView,它只是其中的一些可滚动区域。)
我尝试过以下事情:
我使用HoverGestureRecognizer使悬停功能正常工作。我使用普通的触摸Began/Moved/Ended/Cancelled事件,并检查.type == .indirectPointer,然后检查事件.ModifierFlags中是否设置了控制键修饰符,或者event.ButtonMask == secondary来使右键和控制键正常工作。
我花费了很多时间在Apple Developer网站上搜索文档,从这里开始并进行扩展:
- UIApplicationSupportsIndirectInputEvents 一些方式我尝试过,但都没有找到系统调用的API,当发生双指触控板滚动(或鼠标滚轮滚动)时。 (在另一个视图中,即ScrollView,当我进行双指滚动时,我可以获取ScrollView的滚动事件,因为这是iPadOS 13.4+中ScrollView的内置功能,但我的自定义视图不是ScrollView,它只是其中的一些可滚动区域。)
我尝试过以下事情:
- UISwipeGestureRecognizer。没有为双指触控板滚动手势调用任何内容。
- UIPanGestureRecognizer。没什么效果。
- 子类化UIScrollView并添加UIScrollViewDelegate,只是为了看看它是否有效... 没有任何效果。
- 子类化GestureRecognizer并添加,然后重写ShouldReceive(UIEvent evt),但从未被调用。