我正在使用 Swift 制作一个 mac 应用程序,这个应用程序有一个自定义视图(一个扩展 NSView 并覆盖其绘制方法的类)。现在,我想禁用此视图上的所有鼠标单击和鼠标拖动,并将它们传递给在我的应用程序下运行的其他应用程序。
我尝试了以下方法(从 Apple 文档和其他 SO 问题中收集)来禁用对我的视图的点击,但到目前为止对我没有任何效果:
1. 在我的自定义 View 类中覆盖 hitTest
override func hitTest(_ point: NSPoint) -> NSView? {
let view = super.hitTest(point)
return view == self ? nil : view
}
2.在我的自定义视图类中覆盖acceptsFirstMouse
override func acceptsFirstMouse(for event: NSEvent?) -> Bool {
return false
}
3. 在 ViewController 以及我的自定义 View 类中覆盖 mouseDown
override func mouseDown(with event: NSEvent) {
// do nothing
}
4. 在 ViewController 以及我的自定义 View 类中覆盖 mouseDragged
override func mouseDragged(with event: NSEvent) {
// do nothing
}
我错过了什么吗?