Macos 如何在应用程序中使用标准Mac OS X图标?

Macos 如何在应用程序中使用标准Mac OS X图标?,macos,cocoa,osx-yosemite,Macos,Cocoa,Osx Yosemite,如何在设计/应用程序中使用标准Mac OS X图标 我所说的标准图标是指本屏幕截图中的工具栏图标: 是否有存储这些文件的位置或从Mac OS X应用程序中提取这些文件的方法?有关操作系统定义的图像的不同列表,请参见其中的链接 例如 NSImage*img=[NSImage-imagename:NSImageNameFolder] 具体列出了工具栏图像: 并非所有这些都是标准的。对于那些是,您可以将+[NSImage imageNamed://code>与系统定义的图像名称常量之一一起使用,例如

如何在设计/应用程序中使用标准Mac OS X图标

我所说的标准图标是指本屏幕截图中的工具栏图标:

是否有存储这些文件的位置或从Mac OS X应用程序中提取这些文件的方法?

有关操作系统定义的图像的不同列表,请参见其中的链接

例如

NSImage*img=[NSImage-imagename:NSImageNameFolder]

具体列出了工具栏图像:

并非所有这些都是标准的。对于那些是,您可以将
+[NSImage imageNamed://code>与系统定义的图像名称常量之一一起使用,例如
NSImageNameGoLeftTemplate
NSImageNameIconViewTemplate

其他图像/图标可从
IconServices
获得:

/*
   Type of the predefined/generic icons. For example, the call:
      err = GetIconRef(kOnSystemDisk, kSystemIconsCreator, kHelpIcon, &iconRef);
   will retun in iconRef the IconRef for the standard help icon.
*/

/* Generic Finder icons */

public var kClipboardIcon: Int { get }
public var kClippingUnknownTypeIcon: Int { get }
public var kClippingPictureTypeIcon: Int { get }
public var kClippingTextTypeIcon: Int { get }
public var kClippingSoundTypeIcon: Int { get }
public var kDesktopIcon: Int { get }
public var kFinderIcon: Int { get }
public var kComputerIcon: Int { get }
public var kFontSuitcaseIcon: Int { get }
public var kFullTrashIcon: Int { get }
public var kGenericApplicationIcon: Int { get }
public var kGenericCDROMIcon: Int { get }
...
...
您可以将NSWorkspace图标方法与上述常量一起使用:

NSWorkspace.shared.icon(forFileType: NSFileTypeForHFSTypeCode(UInt32(kGenericApplicationIcon)))

如果有些不标准,如何让它们在我的应用程序中使用?不希望使用自定义图标更改默认用户体验。有没有办法找到路径或从应用程序中提取它们?@zelid如果操作系统没有共享它们,那么你必须自己提供艺术品。。。“借用”操作系统不共享的图像是一种非常可疑的做法,但免费图标库中应该提供大量图像,但它们可能不是100%相同。如果它们不是标准的,那么它们就不是“默认用户体验”的一部分,它们是特定于应用程序的。你需要设计和使用你自己的。即使你可以从苹果应用程序中提取这些图片,它们也是受版权保护的,你无权将其作为自己应用程序的一部分发布。@Ken虽然OP说“提取”,但我很清楚,他只是想在自己的应用程序中绘制图片,而不是复制并发布自己的版本。“如果它们不是标准的,那么它们可能就不是“默认用户体验”的一部分,但不可否认的是,有大量的操作系统映像无法命名或通过API访问。工具栏图像的简要列表很好;苹果可以在这方面做得更多,这将有助于开发者在自己的应用程序中保持苹果的外观和感觉。我看不出有什么理由反对这一点,除了苹果必须花时间…@zeppenwolf:也许这是他想要的,但是:a)没有支持的方式来访问这些图像,b)即使有,它们也可以更改或随任何软件更新而消失,这使得它们不适合在他的应用程序中使用。运送自己的图像或使用支持的API是唯一的好选择。如果他对API提供的标准图像不满意,他应该向苹果公司提交一个bug。看起来是一个很短的列表。标准查找器有更多的图标,也适合我的应用程序。是否有可能以某种方式提取这些信息?