我创建了 NSWindow 并将其背景色设置为绝对蓝色 (#0000FF)。但是当窗口被渲染时,颜色比它应该的颜色“更亮”(#0F3FFB)。
class LilWindow: NSViewController {
override func viewDidLoad() {
self.view.window?.backgroundColor =
NSColor.init(red: 0, green: 0, blue: 1, alpha: 1)
}
有谁知道为什么会这样以及如何解决这个问题? (附截图)
最佳答案
好吧,在摆弄代码和@KenThomases 的帮助几个小时后,我想通了,如果你想让你的 RGB 颜色在 NSImages
和 NSWindows
上看起来正确,您必须将其转换为 NSDeviceRGBColorSpace
色彩空间。为此,我编写了一个简单的函数:
func toScreenColor(color:NSColor) -> NSColor {
var red: CGFloat = 0, green: CGFloat = 0, blue: CGFloat = 0, alpha: CGFloat = 0
color
.colorUsingColorSpaceName(NSCalibratedRGBColorSpace)!
.getRed(&red, green: &green, blue: &blue, alpha: &alpha)
return NSColor(deviceRed: red, green: green, blue: blue, alpha: alpha)
}
关于Swift - 为什么 NSColor 在渲染时变浅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37307113/