Swift 使用ToucheSBegind和touchesMoved事件处理程序在OS X中侦听多点触摸事件
我试图记录用户在2018年MacBook触摸板上的触摸和手指动作 当我尝试测试API并在用户触摸触摸板时打印到控制台时,我没有看到任何输出 如何监听触摸事件并从中获取数据 我指的是。页面的“处理多点触控事件”部分显示: 默认情况下,视图不接受触摸事件。要处理触摸事件,自定义视图必须首先调用NSView方法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
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”)代码>请阅读代码所需的降价信息;所有代码块的格式都不正确,并且没有显示要包含的完整代码。