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

Debajit picture Debajit · Dec 25, 2008 · Viewed 7.5k times · Source

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.

Answer

Ashley Clark picture Ashley Clark · Dec 26, 2008

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"];