如何使用Cocoa在我的Dock图标上绘制徽章?

27

我如何使用Cocoa为我的应用程序添加Dock图标徽章?是否有任何“标准化”的方法可以做到这一点?

(我指的是类似于邮件、iChat等中显示未读消息数量等徽章。)

Cocoa Touch确实提供了一种方法,但我还没有找到一个适用于普通Cocoa应用程序的等效方法。


另一个很棒的资源是WWDC 2003会议424 - Cocoa:技巧和窍门 https://youtu.be/Y3jYF0EhxOg?t=1099 - Marek H
3个回答

27

使用

 [[[NSApplication sharedApplication] dockTile] setBadgeLabel:@"2234"];

这个方法以及NSDockTile类从Leopard版本开始就可用。


3
这是Swift 4中相同的内容:NSApplication.shared.dockTile.badgeLabel = "123" - Clifton Labrum

25

需要注意的是,NSDockTile仅在Leopard系统上可用。如果您需要针对Tiger进行开发,则需要在NSApplication对象上使用-setApplicationIconImage:方法并手动绘制标记。

此外,我没有在文档以外的地方找到相关说明,但您可以通过将dockTile消息发送给NSApplication对象来获取应用程序的dock tile。

NSDockTile *tile = [[NSApplication sharedApplication] dockTile];
[tile setBadgeLabel:@"Lots"];

实际上,考虑到10.6在接下来的6个月内发布,只支持Leopard可能就足够了。 - wfarr
1
在你和我的情况下可能是这样,但Debajit至少应该意识到使用NSDockTile和其他可用选项的影响。 - Ashley Clark

17

快速谷歌搜索找到了 NSDockTile 类。一旦查看文档,它似乎就很清楚易懂了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接