刚开始学习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对我来说都是全新的,我将不胜感激。
答案 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