cocoa - NSColor 核心粉底对应?

标签 cocoa macos-carbon core-foundation

是否有 NSColor 的“免费桥接”Core Foundation 对应版本?

CGColorRef 似乎不喜欢 NSColor ,反之亦然?

基本上,我们希望从存储实际 r/g/b/a 值的 C++ 包装器/框架类创建 NSColor(或兼容)对象。我知道我们可以使用 Objective-C++,但留在 C++ 世界会更好!

非常感谢任何提示。

最佳答案

您可以将 CGColorRef 转换为 NSColor,如下所示:

CGColorRef cgColor = ...;
NSColorSpace *colorSpace = [[[NSColorSpace alloc] initWithCGColorSpace:CGColorGetColorSpace(cgColor)] autorelease];
NSColor *nsColor = [NSColor colorWithColorSpace:colorSpace 
                                     components:CGColorGetComponents(cgColor) 
                                          count:CGColorGetNumberOfComponents(cgColor)];

如果您经常使用它,最好将其放入 NSColor 类别方法中。

如果您的颜色全部位于 RGBA 颜色空间中,则在 C++ 代码中使用简单的 struct 并使用 colorWithCaliberatedRed:green:blue:alpha: 可能会更容易> 用于转换。

关于cocoa - NSColor 核心粉底对应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9239274/

相关文章:

cocoa - 来自 AXUIElement 的 CGWindowID

c++ - 有没有办法以编程方式在 osx 上隐藏碳应用程序?

c# - 在 Xamarin.Mac 应用程序中填充 SourceList

cocoa - 发电机和 swift

haskell - 无法让 w Haskell 在 Mac 上从 ghc 工作

ios - 快速将 NSData 转换为 sockaddr 结构

ios - 将文件上传到ftp服务器时遇到问题

objective-c - 如何让NSColorPanel(使用NSColorWell)和NSFontPanel的颜色面板共存?

cocoa - 如何使用 Google Toolbox for Mac 进行 UI 单元测试

iphone - 尝试释放 ABRecordRef 时的 EXC_BAD_ACCESS