Swift 使用ToucheSBegind和touchesMoved事件处理程序在OS X中侦听多点触摸事件

Swift 使用ToucheSBegind和touchesMoved事件处理程序在OS X中侦听多点触摸事件,swift,macos,gesture,trackpad,multitouch-keyboard,Swift,Macos,Gesture,Trackpad,Multitouch Keyboard,我试图记录用户在2018年MacBook触摸板上的触摸和手指动作 当我尝试测试API并在用户触摸触摸板时打印到控制台时,我没有看到任何输出 如何监听触摸事件并从中获取数据 我指的是。页面的“处理多点触控事件”部分显示: 默认情况下,视图不接受触摸事件。要处理触摸事件,自定义视图必须首先调用NSView方法setAcceptsTouchEvents:,参数为YES 然而,报告称该方法已被弃用 当我尝试在检测触摸时打印日志以测试API是否正常工作时,我没有看到任何控制台输出。这是我的密码: impo

我试图记录用户在2018年MacBook触摸板上的触摸和手指动作

当我尝试测试API并在用户触摸触摸板时打印到控制台时,我没有看到任何输出

如何监听触摸事件并从中获取数据

我指的是。页面的“处理多点触控事件”部分显示:

默认情况下,视图不接受触摸事件。要处理触摸事件,自定义视图必须首先调用NSView方法
setAcceptsTouchEvents:
,参数为YES

然而,报告称该方法已被弃用

当我尝试在检测触摸时打印日志以测试API是否正常工作时,我没有看到任何控制台输出。这是我的密码:

import Cocoa

class ViewController: NSViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

    override var representedObject: Any? {
        didSet {
        // Update the view, if already loaded.
        }
    }

    override func touchesBegan(with event: NSEvent) {
        print("touched!");
    }

}

如何让console语句打印内容?

我一直在玩这个,下面是我的想法

override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the //view.
    //view.acceptsTouchEvents = true; //deprecated but works.deprecated
    view.allowedTouchTypes = [NSTouch.TouchTypeMask.direct, NSTouch.TouchTypeMask.indirect];
}

然后,如问题所述,当触摸处于不同阶段时,您可以覆盖这些功能。

来自NSView.h:
@property BOOL acceptsTouchEvents NS\u DEPRECATED\u MAC(10\u 6,10\u 12\u 2,“改用AllowedTouchType”)请阅读代码所需的降价信息;所有代码块的格式都不正确,并且没有显示要包含的完整代码。