如何在NSTouchBarView中检测Pan Gesture

时间:2017-06-29 17:27:39

标签: macos nstouchbar

是否可以检测到NSTouchBarView上的手指平移?

很抱歉缺少代码,但我甚至不知道从哪里开始。

MacOS不是用于手指触摸,而是TouchBar,但我不知道如何在NSTouchBarView上进行操作

1 个答案:

答案 0 :(得分:2)

我并不是特别了解使用NSTouchBarView,但在触摸栏中使用平移识别器通常是这样的:创建一个视图,然后创建一个NSPanGestureRecognizer(不要...忘记设置目标和操作)然后将识别器添加到先前创建的视图中。最后,创建您的NSCustomTouchBarItem并将之前创建的视图分配给项目视图。 Swift中的快速示例:

func touchBar(_ touchBar: NSTouchBar, makeItemForIdentifier identifier: NSTouchBarItemIdentifier) -> NSTouchBarItem? {

    switch identifier {
    case NSTouchBarItemIdentifier.yourCustomItem:
        return itemWithRecognizer(identifier: identifier)
    default:
        return nil
    }

}

func itemWithRecognizer(identifier: NSTouchBarItemIdentifier) -> NSTouchBarItem {
    let customView = NSView()
    customView.wantsLayer = true
    let recognizer = NSPanGestureRecognizer()
    recognizer.target = self
    recognizer.action = #selector(doSomething)
    customView.addGestureRecognizer(recognizer)
    let item = NSCustomTouchBarItem(identifier: identifier)
    item.view = customView
    return item
}

func doSomething() {
    // gesture was activated
}