如何区分事件 -(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/