在macOS应用程序中绘制彩色矩形(Swift)

时间:2014-08-25 16:20:33

标签: xcode cocoa calayer nsview cgrect

刚开始学习Swift。我使用Xcode 6 Beta 6创建了一个macOS应用程序项目。现在,我想在应用主视图中使用ViewController.swift绘制彩色矩形(用于测试目的)(NSWindow中的Main.storyboard)。

我试过这个:

override func viewDidLoad() {
   let myRect = NSView(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
   myRect!.backgroundColor = NSColor.redColor().CGColor // app crashes here
   self.view.addSubview(myRect)
}

应用程序在第三行崩溃:EXC_BAD_INSTRUCTION

不仅Swift而且Xcode对我来说都是全新的,我将不胜感激。

3 个答案:

答案 0 :(得分:1)

自从我问这个问题已经有一段时间了,但是我注意到最近有很多意见,因此提供实际答案( Swift 4.2 )可能对很多人有帮助:< / p>

override func viewDidLoad() {
   let myFrame = NSRect(x: 0.0, y: 0.0, width: 200.0, height: 200.0)
   let myRect = NSView(frame: myFrame)
   myRect.backgroundColor = NSColor.red
   self.view.addSubview(myRect)
}

答案 1 :(得分:0)

尝试将代码放在ViewDidAppear中......

您正尝试在尚未显示的视图上绘制矩形。

答案 2 :(得分:0)

我认为您在设置背景颜色之前错过了添加以下内容:

theRectangle.wantsLayer = true