e.J*_*mes 12 cocoa icons nsimage
我为我的Cocoa App设置了一个自定义图标文件(MyApp.icns).如何NSImage从我的应用程序中访问图标的表示?
像下面这样的东西是完美的:
NSImage * iconImage = [MyApplication defaultIconAsImage];
Run Code Online (Sandbox Code Playgroud)
但我确信这不是那么容易:)
当然,我可以获得图标文件的路径,如下所示:
NSString * iconPath = [[NSBundle mainBundle]
pathForResource:@"MyApp" ofType:@"icns"];
Run Code Online (Sandbox Code Playgroud)
但在我看来,应该有某种标准方式来访问应用程序的图标文件,而不是通过名称调用它,因为名称可能会改变.
这样做的正确方法是什么?
Abi*_*ern 18
只是为了完整性 - 这是您获取系统上任何应用程序或文件的图标的方法.
NSImage *iconImage = [[NSWorkspace sharedWorkspace] iconForFile:@"path"];
Run Code Online (Sandbox Code Playgroud)
将应用程序图标的路径传递给应用程序图标,或者传递与文件关联的图标的文件路径.
小智 7
请注意,-[NSApplication applicationIconImage]将自定义图标粘贴到应用程序时,不会返回正确的图标.然后你需要做:
NSString* appPath = [[NSBundle mainBundle] bundlePath];
NSImage* appIcon = [[NSWorkspace sharedWorkspace] iconForFile:appPath];
Run Code Online (Sandbox Code Playgroud)
(参考我为Chromium写的停靠图标代码:http://src.chromium.org/svn/trunk/src/chrome/browser/ui/cocoa/dock_icon.mm)