2
我試圖在NSView
中實現smartMagnify:
,但它永遠不會被調用。我有rotate:
,magnify:
等,他們都被成功調用 - 我需要做什麼來接收此消息?我搜索了非常稀少的文檔,並且找不到沒有被調用的原因。NSView/NSResponder smartMagnify:
這裏是因爲我認爲這是有關我的代碼儘可能多...
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
}
// ...
}
剛剛經歷迷信,我已經嘗試設置自己作爲第一響應者,以防萬一它是什麼做的是,但這沒有什麼區別。