首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSView/NSResponder smartMagnify:

NSView/NSResponder smartMagnify:
EN

Stack Overflow用户
提问于 2017-04-07 19:35:53
回答 1查看 180关注 0票数 2

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

以下是我认为与我的代码相关的所有内容。

代码语言:javascript
复制
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
    }
    // ...
}

通过迷信,我尝试将自己设置为First Responder,以防与此有关,但这并没有什么不同。

EN

回答 1

Stack Overflow用户

发布于 2017-11-22 03:01:28

当您用两个手指双击时,会触发此事件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43277127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档