【问题标题】:Change app icon during runtime在运行时更改应用程序图标
【发布时间】:2015-01-15 21:08:18
【问题描述】:
在 OSX 10.5+ 中,应用程序图标绘制在小型化窗口上。
注意“应用程序图标自动定位在磁贴中”。
如何使用 Objective-c 更改应用程序图标?还是其他方法?
【问题讨论】:
标签:
objective-c
macos
icons
core-foundation
dock
【解决方案1】:
【讨论】:
-
感谢 DarkDust,如果我设置应用程序图标图像,它会更改停靠图标,但不会更改小型化窗口上的图标。这是预期的吗?你有火狐吗?如果你是你,你可以安装插件DevPrefs,用 Shift + F4 打开 scrtachpad,转到顶部的菜单栏并将“环境”设置为“浏览器”。然后复制此要点HERE 并将IMAGE_PATH 设置为桌面上的图像并运行脚本。它确实setApplicationIconImage,但它不会更新迷你窗口。
-
这是Firefox中setApplicationIconImage之后的效果图,红色箭头指向小窗口中保持不变的小图标:i.imgur.com/hsRTSk6.png
-
我不知道这种行为是否有意。我找到了nice demo project(以 ZIP 格式下载并打开“Play With Dock”项目)。我在 OS X 10.10 上看到了您在此处描述的相同行为(以及在您的其他一些类似问题中),不知道其他版本。最小化窗口上的图标始终是此处的捆绑图标。但是您可以从最小化窗口中删除应用程序图标:[[self.window dockTile] setShowsApplicationBadge:NO];
-
哈哈谢谢很好的发现。我的主题之间存在细微差别。就像捆绑包(1)图标关联,然后(2)在图标更改时强制更新appbundle,然后(3)在迷你窗口上设置迷你图标。我尝试了[[self.window dockTile] setShowsApplicationBadge:NO];,您可以在此处看到 sn-p 并运行与运行以前的 sn-p 相同,但最小化具有选项卡的浏览器窗口:GitHubGIST :: Noitidart / _ff-addon-snippet-ObjC_SetShowsApplicationBadge.js 该函数对 >=10.5没有任何作用>
-
我认为将 setShowsApplicationBadge 设置为 false 然后设置为 true 会更新它,但它没有。然后我还尝试对某些东西执行 setMiniwindowImage 然后返回 nil 希望它会更新但也没有更新它,因为 sn-p 在这里:GitHubGIST :: Noitidart /_ff-addon-snippet-ObjC_SetMiniwindowImage.js。 :(您认为我可以尝试更新那个吸盘迷你图标的任何其他想法吗?