【问题标题】:Cocoa: distinguish input device / scrollWheel: as mouse-scroll wheel and TrackPadCocoa:区分输入设备/scrollWheel:作为鼠标滚轮和触控板
【发布时间】:2011-03-07 09:00:04
【问题描述】:

如果用户输入设备具有一维滚轮或二维触控板/magicMouse,我正在寻找一种在[NSResponder scrollWheel:] 中可靠地区分的方法?

首先我想实现一个不同的行为。 但是仅仅看一下NSEvent 的deltaX 会有点弱。 有什么建议吗?

【问题讨论】:

    标签: objective-c cocoa macos appkit


    【解决方案1】:

    使用事件的子类型:

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

    即使在禁用惯性滚动的情况下也可以使用。

    【讨论】:

      【解决方案2】:

      您可以使用私有方法调用[theEvent _scrollPhase] 来判断设备是否正在使用惯性滚动,这表示Apple 提供的输入设备。 (注意:如果用户禁用了惯性滚动,这将不起作用)

      【讨论】:

      • 您不需要私有 API 来执行此操作。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多