我试着找出如何让鼠标点击坐标来画一条线。我想做两次点击(第一和第二点)和一条线将创建。
我分析了很多代码,但它们都很庞大(例如,我喜欢用这种方式https://stackoverflow.com/a/47496766/9058168)。
我希望在斯威夫特画一条线并不困难。我是否可以键入另一个变量,即鼠标单击坐标而不是数字坐标(参见下面的代码)?如果你的答案是真的,该如何编码呢?帮帮我,求你了,让它变得更简单。
import Cocoa
class DrawLine: NSView {
override func draw(_ dirtyRect: NSRect) {
NSBezierPath.strokeLine(from: CGPoint(x: 20, y: 20), to: CGPoint(x: 0, y: 100))
}
}
发布于 2017-12-12 23:48:16
侦听鼠标向下事件,并设置开始位置和结束位置,使用它绘制路径。
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)
}
}
}
https://stackoverflow.com/questions/47781561
复制相似问题