无法获取locationInView:尝试检索位置时出现此类NSTouch断言错误

时间:2018-02-12 00:01:22

标签: swift macos scenekit macbookpro-touch-bar

我正在尝试在用户单击特定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
    }
}

1 个答案:

答案 0 :(得分:0)

-locationInView:仅适用于type NSTouchTypeDirect的触摸。如果你的Mac带有触控条,按下它会导致触摸类型为NSTouchTypeIndirect的事件,屏幕上没有位置。