16

我正在开发 OS X 项目,我想以编程方式生成触摸板手势事件,如 NSEventTypeSwipe 或 NSEventTypeRotate 所以我可以在其他应用程序上旋转/缩放等。

我发现了如何生成鼠标/键盘事件但不是触摸板。

任何想法?

4

4 回答 4

5

没有用于生成这些事件的公共 API。

你可以在这个项目中找到一些合成这些事件的工作:calftrail/Touch

于 2012-12-25T08:16:57.363 回答
3

参考: Cocoa 事件处理指南

上面的Mac Developer Library指南没有说明任何已知的以编程方式生成Touchpad Gestures的方法。

甚至可以说触摸板手势本身发生在操作系统之外:

“触控板硬件包括对解释常见手势和映射动作的内置支持......”

该指南还明确提到应用程序不应依赖这种唯一的输入机制,因此最好包括对键盘和鼠标的支持。

既然 Mac 和 Windows(即 Windows 8)在操作系统级别支持触摸屏显示器,那么以编程方式将触摸板和触摸屏手势整合到您的项目或使用适当 API 的远程桌面控制等服务中只是时间问题。可用的。

于 2012-12-25T05:16:32.600 回答
0

我认为触摸手势事件不容易生成,因为没有公开的官方 Apple API。我认为这 NSEventTypeMagnify、NSEventTypeRotate、NSEventTypeSwipe 仅用于处理退出系统事件时的只读目的。也许苹果出于某种原因不想让 Magic Mouse 成为 3rd 方开发人员的魔法触摸板。提到的这个项目 rob mayoff 不能正常工作,因为苹果可能会改变事件数据的结构。因此,对这种黑客行为进行转发并不是未来主义的。但是,如果您想得更多,您可以通过其他方式实现触摸事件的作用。

  1. 放大(捏合手势)-> 它只是放大、缩小-> 大多数程序都使用快捷键,如 CMD 和 +、CMD 和 -。
  2. 旋转它可用于照片,并且在预览应用中有 CMD 和 L、CMD 和 R 等快捷方式。
  3. 滑动 - 改变空间(桌面) -> 使用 CTRL 和箭头 <- 或 ->
于 2016-08-27T10:07:57.663 回答
-1

当我看到 xcode 模拟器时,我了解到可以以编程方式生成触摸事件,并且 xcode 模拟器正在使用这些例程和函数来传输光标触摸并将它们转换为触摸事件,但是根据@robMayoff 所说的,似乎Apple 没有向公众开放该图书馆。模拟相同的行为并为此从头开始创建函数会有点挑战。

这是 NSTouch 类参考:http: //developer.apple.com/library/mac/#documentation/AppKit/Reference/NSTouch_Class/Reference/Reference.html#//apple_ref/occ/cl/NSTouch

于 2012-12-31T22:50:57.103 回答