我以前是为 iOS 开发的,我不明白为什么我不能轻易地改变主视图中 NSView
的背景颜色。
假设我有一个带有主视图的 View Controller 。在此 View 中,我添加了 3 个自定义 View ,我设置了它们的约束以适合主视图。
我已经为我的 View Controller 创建了 3 个导出:
@IBOutlet weak var topView: NSView!
@IBOutlet weak var leftView: NSView!
@IBOutlet weak var rightView: NSView!
之后,我试图设置这些 View 的背景,但无法执行此操作。运行应用程序时我没有看到任何颜色变化。
这是我添加的用于显示自定义 View 颜色的代码:
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
}
它什么也没显示(我的 View 没有背景颜色):
我不明白为什么这段代码不起作用。为什么设置 NSView
的颜色如此困难(而在 iOS 开发中却如此简单)?我正在使用 Xcode 8 并使用 Swift 3 编写代码。
最佳答案
对于您的 subview ,您应该将wantsLayer
设置为true
,而不是您的父 View 。
self.topView.wantsLayer = true
self.rightView.wantsLayer = true
self.leftView.wantsLayer = true
关于swift - 如何使用 Swift 在 Cocoa App 中设置 NSView 的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46094202/