How do I draw a badge on my Dock icon using Cocoa?

狂风中的少年 提交于 2019-12-17 22:34:29

问题


How do I add a badge to the Dock icon for my app using Cocoa? Is there any roughly "standardized" way to do this?

(I'm referring to the kind of badges that show up in Mail, iChat etc. to indicate the number of unread messages and the like.)

Cocoa Touch does provide one such method, but I haven't been able to find any equivalent for a regular Cocoa application.


回答1:


Use

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

This method, and the NSDockTile class, has been available since Leopard.




回答2:


It should be noted that NSDockTile is only available on Leopard. If you need to target Tiger you'll need to use -setApplicationIconImage: on your NSApplication object and draw your badge by hand.

Also, it's not in the documentation outside of the release notes that I could find but you get your application's dock tile by sending the dockTile message to your NSApplication object.

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



回答3:


A quick google search turned up the NSDockTile class. Seems pretty self-explanatory once you take a gander at the documentation.



来源:https://stackoverflow.com/questions/392797/how-do-i-draw-a-badge-on-my-dock-icon-using-cocoa

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!