NSImage 标准图稿和图标 NSImageNameStatusAvailable

Posted

技术标签:

【中文标题】NSImage 标准图稿和图标 NSImageNameStatusAvailable【英文标题】:NSImage standard artwork & icon NSImageNameStatusAvailable 【发布时间】:2013-03-17 21:01:12 【问题描述】:

当我将NSImageCell 添加到 xib 时,它有一个图像属性,我可以在其中看到一些NSImage 标准艺术作品。从文档来看,它看起来很多,但在下拉列表中,我得到的更少。 具体来说,我正在寻找。

NSString *const NSImageNameStatusAvailable;
NSString *const NSImageNameStatusPartiallyAvailable;
NSString *const NSImageNameStatusUnavailable;
NSString *const NSImageNameStatusNone;

我可以在代码中设置图像,但我想在 xib 中排列所有内容。是否有原因它在下拉列表中不可用?我也不想在 xib 中看到空的 NSImageCell。 有没有办法找到主机图像的大小,这样我就可以调整 xib 的大小而无需实际 NSLog'ing 它的尺寸(假设我想使用一堆主机图像)。

【问题讨论】:

您在项目中设置的部署目标是什么? 部署目标:10.7 嗯,好的。我很惊讶它们没有出现,因为它们是在 10.6 中引入的。 【参考方案1】:

据我所知,笔尖编辑器中的图像是四组的结合:

模板图像(例如按钮) 工具栏图标 图标服务定义的图标(例如警告图标) 您已添加到项目中的图像

不包括任何不在这些集合中的任何内容。可能值得reporting as a bug。

同时,您可以将其设置为“NSStatusAvailable”(常量名称减去“ImageName”部分),它将在运行时工作。

因此,您可以通过使用单独的应用程序提取各种图标(无论您需要在 nib 中使用哪个图标)然后将它们添加到您的项目而不是任何目标中来作弊。它们仍会显示在弹出窗口中(从 4.6.1 开始),但不会复制到您的应用程序包中,因此您的应用程序将使用系统提供的。

当然,Apple 可以随时更改图像及其大小,因此在运行时获取它们并根据需要调整视图大小/重新排列视图可能更安全。另一方面,除非您计划在该位置添加对任何随机图像的支持(例如,像 Adium 的状态图标包之类的东西),否则我不会责怪您采取懒惰的方式并只是调整视图/单元格的大小调整为图像的当前大小,并在某处注明以在它们发生变化时对其进行更新。

【讨论】:

我喜欢提取的想法。你会如何建议这样做? @estobbart:编写一个程序,获取[NSImage imageNamed:NSImageNameStatusAvailable](等)并将它们写入 TIFF 文件。运行该程序,然后将输出添加到您的项目中。

以上是关于NSImage 标准图稿和图标 NSImageNameStatusAvailable的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 和 AVPlayer 中显示音频流的图稿? [复制]

MPMediaItemArtwork 返回尺寸错误的图稿

在 SwiftUI 中使用系统图标和 macOS 作为按钮

在 NSImage 和 Leptonica Pix 之间转换

如何在 SwiftUI 列表中显示 MPMediaItem 图稿?

异步 NSImage 下载:第一个图像无限加载