2017-04-07 17 views
2

NSViewsmartMagnify:을 구현하려고하지만 결코 호출되지 않습니다. 나는 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 
    } 
    // ... 
} 

그냥 미신을 통해, 나는 그와 함께 할 수있는 뭔가했다 단지의 경우, 첫 번째 응답자로 자신을 설정 시도했다 ... 나는 내 코드의 관련이 생각만큼입니다 만 아무런 차이가 없다.

답변

0

두 손가락으로 두 번 탭할 때이 이벤트가 발생합니다.