我正在尝试在用户单击特定SCNNode后检索鼠标位置。我最终想要执行命中测试以确定单击了哪个SCNNode。我有以下代码但是一旦我运行项目,我得到一个断言错误说明:“无法获取locationInView:对于这种类型的NSTouch”。任何帮助将不胜感激。
override func touchesBegan(with event: NSEvent) {
let touch = event.touches(for: self.view)
if #available(OSX 10.12.2, *) {
let location = touch.first?.location(in: self.view)
let hitResults = sceneView.hitTest(location!, options: nil)
} else {
// Fallback on earlier versions
}
}
答案 0 :(得分:0)
-locationInView:
仅适用于type
NSTouchTypeDirect
的触摸。如果你的Mac带有触控条,按下它会导致触摸类型为NSTouchTypeIndirect
的事件,屏幕上没有位置。