如何在MacOS上使用Swift获取鼠标点击坐标?

时间:2017-12-12 21:08:43

标签: swift macos coordinates line draw

我试着找出有关获取鼠标点击坐标以画线的信息。我想点击两下(第一个和第二个点),然后创建一条线。

我分析了很多代码,但它们很大(例如,我喜欢这种方式https://stackoverflow.com/a/47496766/9058168)。

我希望Swift中的绘图线并不困难。我可以输入另一个具有鼠标点击坐标而不是数字坐标的变量(请查看下面的代码)?如果您的答案是真的,如何编码?请帮助我,让它更简单。

import Cocoa

class DrawLine: NSView {
    override func draw(_ dirtyRect: NSRect) {
    NSBezierPath.strokeLine(from: CGPoint(x: 20, y: 20), to: CGPoint(x: 0, y: 100))
    } 
}

1 个答案:

答案 0 :(得分:0)

侦听鼠标按下事件并使用它来设置起始位置和结束位置以绘制路径。

import Cocoa

class DrawLine: NSView {
    var startPoint:NSPoint?
    var endPoint:NSPoint?
    override func mouseDown(with event: NSEvent){
        if startPoint == nil || self.endPoint != nil{
           self.startPoint = event.locationInWindow
        } else {
          self.endPoint = event.locationInWindow
          self.needsDisplay = true
        }
    }
    override func draw(_ dirtyRect: NSRect) {
        if let theStart = startPoint, let theEnd = endPoint{
           NSBezierPath.strokeLine(from: theStart, to: theEnd)
        }
    }
}