Не удается получить locationInView: для этого типа ошибки подтверждения NSTouch при попытке получить местоположение

Я пытаюсь получить местоположение мыши после того, как пользователь нажимает на определенный 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 ответ

-locationInView: будет работать только для прикосновений typeNSTouchTypeDirect, Если у вас Mac с сенсорной панелью, нажатие на нее приведет к событию с касанием типа NSTouchTypeIndirect который не имеет места на экране.

Другие вопросы по тегам