【发布时间】:2017-09-07 10:36:36
【问题描述】:
我曾经为 iOS 开发,我不明白为什么我不能在主视图中轻松更改 NSViews 的背景颜色。
假设我有一个视图控制器,其中包含一个主视图。在这个视图中,我添加了 3 个自定义视图,并设置了它们的约束以适应主视图。
我为我的视图控制器创建了 3 个出口:
@IBOutlet weak var topView: NSView!
@IBOutlet weak var leftView: NSView!
@IBOutlet weak var rightView: NSView!
之后,我正在尝试设置这些视图的背景,但无法执行此操作。运行应用程序时,我没有看到任何颜色变化。
这是我为自定义视图显示颜色而添加的代码:
override func viewDidLoad() {
super.viewDidLoad()
self.view.wantsLayer = true
self.topView.layer?.backgroundColor = NSColor.blue.cgColor
self.rightView.layer?.backgroundColor = NSColor.green.cgColor
self.leftView.layer?.backgroundColor = NSColor.yellow.cgColor
}
它什么也没显示(我的视图上没有背景颜色):
我不明白为什么这段代码不起作用。为什么设置NSView 的颜色如此困难(而在iOS 开发中却如此简单)?我正在使用 Xcode 8 并使用 Swift 3 编写代码。
【问题讨论】:
-
这不是改变底层视图背景颜色的好方法。根据背景颜色和文本颜色,NSTextField 标签的文本可能会模糊。
-
有什么好办法?