macos - NSEvent 和魔术鼠标

标签 macos osx-lion mouse trackpad

如何区分事件 -(void)scrollWheel:(NSEvent *)event 是由 Magic Mouse 还是触控板触发的?

我问这个问题的原因是因为我想在使用触控板时为滚动事件分配不同的操作,因为用户可以在触控板上捏合以缩放。然而,在魔术鼠标上,用户不能轻易地捏合,所以我想使用滚动功能来代替捏合。

我可以使用这条线区分普通鼠标和 Magic Mouse:

if (([event momentumPhase] != NSEventPhaseNone) || [event phase] != NSEventPhaseNone)

但是,触控板和 Magic Mouse 均通过了此测试。

最佳答案

我能够区分鼠标上的滚轮(不是 Magic Mouse,但我怀疑它仍然可以工作)和使用 NSEvent 子类型的触控板:

enum {
   NSMouseEventSubtype           = NX_SUBTYPE_DEFAULT,
   NSTabletPointEventSubtype     = NX_SUBTYPE_TABLET_POINT,
   NSTabletProximityEventSubtype = NX_SUBTYPE_TABLET_PROXIMITY
   NSTouchEventSubtype             = NX_SUBTYPE_MOUSE_TOUCH
};

关于macos - NSEvent 和魔术鼠标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14461529/

相关文章:

c++ - OSX Lion 上的 GDB 7.3.1

delphi - Gethomepath 不适用于 iOS 5/OSxLion

java - 鼠标释放时的 JTree 选择

android - 在Android手机上模拟USB鼠标指针输入?

macos - mac 上的 jenkins 从站目录无法访问

r - 在 ggplot2 中使用自定义 OTF 字体

ios - 使用 CocoaHTTPServer 向 "send"发送消息

ios - Metal 质感比原图暗

python - 在 Mac OS X Lion 上的 Eclipse PyDev 中将 python 作为 32 位进程运行

CSS 头痛(一个 :hover) with Chrome browser.