我为我的Cocoa App设置了一个自定义图标文件(MyApp.icns)。如何从我的应用程序中访问图标的NSImage
表示?
以下内容将是完美的:
NSImage * iconImage = [MyApplication defaultIconAsImage];
但我确定 容易:)
我当然可以获得图标文件的路径,如下所示:
NSString * iconPath = [[NSBundle mainBundle]
pathForResource:@"MyApp" ofType:@"icns"];
但在我看来应该有某种标准方式来访问应用程序的 图标文件,而不是按名称调用它,因为名称可能会改变。
这样做的正确方法是什么?
答案 0 :(得分:38)
答案 1 :(得分:17)
仅为了完整性 - 这是您获取系统上任何应用程序或文件的图标的方式。
NSImage *iconImage = [[NSWorkspace sharedWorkspace] iconForFile:@"path"];
将应用程序图标的路径传递给应用程序图标,或传递与文件关联的图标的文件路径。
答案 2 :(得分:6)
请注意,将自定义图标粘贴到应用程序时,-[NSApplication applicationIconImage]
不会返回正确的图标。然后你需要做:
NSString* appPath = [[NSBundle mainBundle] bundlePath];
NSImage* appIcon = [[NSWorkspace sharedWorkspace] iconForFile:appPath];
(参考我为Chromium写的停靠栏图标代码:http://src.chromium.org/svn/trunk/src/chrome/browser/ui/cocoa/dock_icon.mm)