如何在 MacOS 上使用 Swift 获取鼠标点击坐标?
How could I get mouse click coordinates using Swift on MacOS?
我试图找出有关获取鼠标单击坐标以绘制一条线的信息。我想点击两次(第一个和第二个点),然后会创建一条线。
我分析了很多代码,但是都很大(比如我就喜欢这种方式)。
希望 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))
}
}
侦听鼠标按下事件并使用它设置开始位置和结束位置以绘制路径。
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)
}
}
}
我试图找出有关获取鼠标单击坐标以绘制一条线的信息。我想点击两次(第一个和第二个点),然后会创建一条线。
我分析了很多代码,但是都很大(比如我就喜欢这种方式)。
希望 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))
}
}
侦听鼠标按下事件并使用它设置开始位置和结束位置以绘制路径。
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)
}
}
}