老谭笔记

获取Mac OSX系统内置的各种图标

我们在开发Mac OSX软件的时候,有很多图像资源都是可以直接利用系统内置的图片的,比如我们常用这样的方法来获得文件夹的图标:

1
NSImage *img = [NSImage imageNamed:NSImageNameFolder];

类似NSImageNameFolder还有NSImageNameComputer,NSImageNameApplicationIcon等等,具体可以查询NSImage.h头文件中相关的声明。
另外我们也可以通过以下的方式来获取不同类型文件的图标:

1
NSImage *img = [[NSWorkspace sharedWorkspace] iconForFileType:@"pkg"];

当然上面的那个方法还可以通过HFSTypeCode来获得图标:

1
NSImage *img = [[NSWorkspace sharedWorkspace] iconForFileType:NSFileTypeForHFSTypeCode(kFinderIcon)];

kFinderIcon是一个枚举类型的值,类似的值有一百多个,所以为了能够方便的找到自己想到的图标,我写了一个小程序来枚举了这些图标,小程序的运行结果如下图:
icondemo

该小程序的源代码下载:IconDemo.zip