我怎样画一条简单的线?(OS X)

时间:2016-05-25 13:08:33

标签: swift macos cocoa swift2

我试过了:

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,但仍然会发生同样的事情。我错过了什么? 提前感谢您的回答,并对基本问题表示抱歉。

1 个答案:

答案 0 :(得分:2)

尝试在drawRectNSView)内完成:

import Cocoa

final class Line: NSView {
    override func drawRect(dirtyRect: NSRect) {
        let myPath = NSBezierPath()
        myPath.moveToPoint(CGPoint(x: 20, y: 20))
        myPath.lineToPoint(CGPoint(x: 100, y: 100))
        myPath.stroke()
    }
}

final class ViewController: NSViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        let frame = CGRect(x: 0, y: 0, width: 100, height: 100)
        let line = Line(frame: frame)
        view.addSubview(line)
    }

    override var representedObject: AnyObject? {
        didSet {
            // Update the view, if already loaded.
        }
    }

}