Xcode 在macOS应用程序中绘制彩色矩形(Swift)
刚开始学斯威夫特。我已经使用Xcode 在macOS应用程序中绘制彩色矩形(Swift),xcode,cocoa,calayer,nsview,cgrect,Xcode,Cocoa,Calayer,Nsview,Cgrect,刚开始学斯威夫特。我已经使用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!.
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\u BAD\u指令
不仅Swift而且Xcode对我来说都是全新的,我将非常感谢您的帮助。尝试将代码放在ViewDidDisplay中
您正在尝试在尚未显示的视图上绘制矩形。尝试将代码放在ViewDidDisplay中
您试图在尚未显示的视图上绘制矩形。我认为您在设置背景色之前没有添加以下内容:
theRectangle.wantsLayer = true
我认为您在设置背景色之前没有添加以下内容:
theRectangle.wantsLayer = true
我问这个问题已经有一段时间了,但我注意到最近它得到了很多意见,因此提供一个实际的答案(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)
}
我问这个问题已经有一段时间了,但我注意到最近它得到了很多意见,因此提供一个实际的答案(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)
}