2

我正在尝试smartMagnify:在一个中实现NSView,但它从未被调用过。我有rotate:,magnify:等,并且它们都被成功调用 - 我需要做什么才能收到此消息?我搜索了文档,该文档非常稀疏,找不到不调用它的原因。

这就是我认为与我的代码相关的内容......

class FigOSXLayerView: FigOSXLayerViewBase /* NSView subclass */ {
    var layerViewController: FigOSXLayerVC?
    private var _scale: CGFloat = 1.0

    override func draw(_ dirtyRect: NSRect) {
        self.properties.showSelectionHighlight = true
        self.properties.showAnnotation = true
        self.properties.showPoints = true
        super.draw(dirtyRect)
    }

    // ************************
    // MARK: Zoom, pan, rotate
    // ************************
    override func magnify(with event: NSEvent) {
        self._scale = 1 + event.magnification
        self.layerViewController?.scale(self._scale)
    }

    override func rotate(with event: NSEvent) {
        self.layerViewController?.rotate(CGFloat(event.rotation.toRadians))
    }

    override func scrollWheel(with event: NSEvent) {
        self.layerViewController?.translate(dx: event.deltaX, dy: -event.deltaY)
    }

    override func smartMagnify(with event: NSEvent) {
        Swift.print("Smart magnify") // Not called
    }
    // ...
}

只是通过迷信,我尝试将自己设置为急救人员,以防万一这与此有关,但这没有任何区别。

4

1 回答 1

0

当您用两根手指双击时触发此事件。

于 2017-11-21T19:01:28.333 回答