刚开始学习 Swift。我使用 Xcode 6 Beta 6
创建了一个 macOS 应用程序项目。现在我想使用ViewController.swift
在应用程序主视图(Main.storyboard
中的NSWindow
(中绘制一个彩色矩形(用于测试目的(。
我试过这个:
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 对我来说也是全新的,我将不胜感激任何帮助。
自从我问这个问题以来已经有一段时间了,但我注意到它最近得到了很多浏览量,所以提供一个实际的答案(Swift 4.2(可能对一群人有帮助:
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)
}
尝试将代码放入 ViewDidAppear...
您正在尝试在尚未显示的视图上绘制一个矩形。
我想您在设置背景颜色之前错过了添加以下内容:
theRectangle.wantsLayer = true