【发布时间】:2016-07-14 07:54:39
【问题描述】:
我的 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 并将其设置为界面构建器故事板中我的主窗口的自定义类。我有以下代码:
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 -
我在两个方法调用
viewDidLoad()和windowDidLoad()中再次尝试了v.wantsLayer = true,但是两个视图仍然不可见。我什至尝试了一些疯狂的事情,比如将 contentView 的图层颜色设置为clearColor,认为可能所有视图都添加到它下面。我什至做了self.window?.contentView?.addSubview(v, positioned: NSWindowOrderingMode.Above, relativeTo: self.window?.contentView)... 仍然没有雪茄。视图无处可见。
标签: swift macos nsview nswindow