【发布时间】:2016-05-25 13:08:33
【问题描述】:
我试过了:
import Cocoa
class ViewController: NSViewController {
@IBOutlet weak var butt: NSButton!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override var representedObject: AnyObject? {
didSet {
// Update the view, if already loaded.
}
}
@IBAction func buttPressed(sender: AnyObject) {
let myPath = NSBezierPath()
myPath.moveToPoint(CGPoint(x: 20, y: 20))
myPath.lineToPoint(CGPoint(x: 100, y: 100))
myPath.stroke()
}
}
它编译并运行,但在单击按钮时不绘制任何内容。
我尝试设置颜色:NSColor.redColor().set(),设置宽度:myPath.lineWidth = 20 并使用NSPoint 而不是CGPoint,但仍然发生同样的事情。我错过了什么?
提前感谢您的回答,并对基本问题感到抱歉。
【问题讨论】:
-
不确定您搜索的是什么,但请尝试:“cocoa”“drawing”“example”“swift”。它给了我很多例子。
-
试图直接在
viewDidLoad(myPath.stroke()) 中绘制是没有意义的,因为正如错误告诉你的那样,你无处可绘制 in (没有“上下文")。 -
"我正在直接在 viewDidLoad 中绘图" 我告诉你这没有任何意义。不要这样做。
-
你仍然没有上下文。你好像没在听我不知道你想让这条线go到哪里,运行时也不知道。你必须告诉它。你必须有一个可以画画的地方才能画画。
-
@matt 好吧,我应该如何创建上下文?如果您请发布正确的代码作为答案,我会将其标记为已接受。