【问题标题】:How can I implement gesture recognizers in OS X?如何在 OS X 中实现手势识别器?
【发布时间】:2012-05-29 19:27:42
【问题描述】:

我已经为 iOS 的手势识别器做了很多工作,但我现在在 OS X 上工作,我迷路了。

我想复制 Finder 中存在的功能,您可以在其中用两根手指滑动(在您的魔术鼠标上)以在目录树中后退/前进。

我有一个基于 NSWindow 的应用程序,看起来与 Finder 非常相似。我之前使用过允许您构建自己的手势识别器的应用程序,所以我知道这是可能的,但我没有看到任何文档。

我需要做什么来实现这些手势?

【问题讨论】:

    标签: macos osx-lion nswindow gesture finder


    【解决方案1】:

    Mac 现在有:

    • NSClickGestureRecognizer
    • NSMagnificationGestureRecognizer
    • NSPanGestureRecognizer
    • NSPressGestureRecognizer
    • NSRotationGestureRecognizer

    也可用于情节提要。

    【讨论】:

      【解决方案2】:

      您可以在 Cocoa 事件处理指南中阅读有关 Handling Trackpad Events 的信息。系统可以检测一些预定义的手势(滑动、旋转等),或者您可以监听原始触摸事件,这些事件沿着 NSResponder 链向上传播,就像常规鼠标事件一样。

      【讨论】:

        【解决方案3】:

        看起来 CZKit 中也有一个事件识别器类。 https://github.com/CarterA/CZKit

        我还没用过这个(还),所以 YMMV。

        【讨论】:

        • 在该库中找不到与手势相关的任何内容。
        • 我还没有使用它,而且从 README 甚至不记得它应该做什么,但我想我指的是这个目录中的 CZActionRecognizer 类:github.com/CarterA/CZKit/tree/master/Libraries/CZUI/Classes看起来这应该是一般手势/动作的基类。看起来您需要自己编写任何实际的识别器,除非您只想识别点击。祝你好运!
        • 它是潜在手势事件的通用事件处理程序?这是我能做出的最好解释。我猜对某人来说可能是上下文重要的。为解释的努力竖起大拇指。 :) 作为对正在寻找与手势事件相关信息的其他人的说明:我发现有两种方法。一种是覆盖 NSView 中的手势方法。另一种更现代的方法是将“选择器”添加到手势识别器中。后者可以更好地控制手势开始和结束的时间等。虽然同样可以通过覆盖来实现。只是没那么容易。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-07
        • 1970-01-01
        • 1970-01-01
        • 2012-03-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多