我在我的ViewController中有这段代码。然而,我以编程方式添加的视图无处可见。
override func viewDidLoad() {
super.viewDidLoad()
let f: NSRect = NSMakeRect(0, 0, 200, 200)
let v: NSView = NSView(frame: f)
v.layer?.backgroundColor = NSColor.yellowColor().CGColor
self.view.addSubview(v)
}
此外,我尝试创建一个自定义的NSWindowController,并将其设置为接口构建器Storyboard中我的主窗口的自定义类。在那里,我有以下代码:
override func windowDidLoad() {
super.windowDidLoad()
let f: NSRect = NSMakeRect(0, 0, 200, 200)
let v: NSView = NSView(frame: f)
v.layer?.backgroundColor = NSColor.yellowColor().CGColor
self.window?.contentView?.addSubview(v)
}
这也不起作用 :/
我甚至尝试设置
v.wantsLayer = true
,因为我在网上找到的一个答案建议这样做,但从一开始就感觉很奇怪,当然没有任何作用。我在这里错了什么?
v.wantsLayer = true
。 - Leo DabusviewDidLoad()
和windowDidLoad()
方法调用中再次使用v.wantsLayer = true
,但两个视图仍然不可见。我甚至尝试了一些疯狂的事情,比如将contentView的层颜色设置为clearColor
,以为所有视图都添加在它下面。我甚至做到了self.window?.contentView?.addSubview(v, positioned: NSWindowOrderingMode.Above, relativeTo: self.window?.contentView)
... 仍然没有结果。视图仍然无处可见。 - Martin Velchevski