我正在开发一个项目,需要在运行时更改应用程序图标。我已将 default_icon.icns 设置为默认应用程序图标。
现在,当我想更改应用程序的图标时,我在 Appdelegate.m 类中使用以下代码片段。
NSString *iconPath = @“ ICON_PATH/new_icon_file.png ”;
NSImage *icon =[[NSImage alloc] initWithContentsOfFile:iconPath];
if (icon != nil)
{
NSLog(@“Changing App icon");
[NSApp setApplicationIconImage:icon];
}
当我在 10.9.4 OSX 上运行此项目时,应用程序图标在运行时不会更改,直到我重新启动 Mac 计算机。 重新启动 mac 计算机后,应用程序 default_icon 被替换为 new_icon_file。
但是上面的代码片段在 10.8 Mac OSX 之前都可以正常工作,无需重新启动 Mac 机器,并且在执行代码中的 “[NSApp setApplicationIconImage:icon]” 行后。 default_Icon 被替换为 new_icon_file。
如果上述在运行时更改应用程序图标的代码片段有任何问题,请纠正我?或者,是否有其他方法可以在 10.9 Mac OSX 中运行时更改 AppIcon?
谢谢。
最佳答案
此方法并不意味着更改查找器应用程序图标。
文档指出:
“...暂时更改 Dock 应用程序磁贴中的应用程序图标。”
所以,如果它有效,那就是一个错误/至少是未指定的行为。
<小时/>有效的是设置应用程序目录的图标:
使用NSWorkspace
有 - (BOOL)setIcon:(NSImage *)image forFile:(NSString *)fullPath options:(NSWorkspaceIconCreationOptions)options
我头顶的例子
[[NSWorkspace共享工作空间] setIcon:[[NSBundle mainBundle]bundlePath]选项:0];
关于objective-c - Mac OSX 10.9.4 中的应用程序图标在运行时不会更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25765544/