如何检测 NSTouchBarView 内的平移手势
How to detect a Pan Gesture inside a NSTouchBarView
是否可以检测 NSTouchBarView
上的手指平移?
抱歉缺少代码,但我什至不知道从哪里开始。
MacOS 不是为手指触摸设计的,但 TouchBar 是,但我不知道如何在 NSTouchBarView
上实现
我不知道具体如何使用 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
}
是否可以检测 NSTouchBarView
上的手指平移?
抱歉缺少代码,但我什至不知道从哪里开始。
MacOS 不是为手指触摸设计的,但 TouchBar 是,但我不知道如何在 NSTouchBarView
我不知道具体如何使用 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
}