2017-06-29 55 views
1

是否可以檢測NSTouchBarView上的手指平底鍋?如何檢測NSTouchBarView中的平移手勢

對不起,缺乏代碼,但我甚至不知道從哪裏開始。

的MacOS沒有爲手指觸摸作出,但觸摸欄中的是,但我看不出如何做到這一點上NSTouchBarView

回答

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 
} 
+0

很好!!!謝謝! – SpaceDog