Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode 在macOS应用程序中绘制彩色矩形(Swift)_Xcode_Cocoa_Calayer_Nsview_Cgrect - Fatal编程技术网

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)
}