Well, you do not explain (or show) how this looks bad. Perhaps you are using a regular, non-template image for your icon. You must use a template image, which is an image whose only significant part is the alpha mask. You tell the system that this is an image of a template, either by calling it the suffix "Template" (for example, "FooTemplate.png") or calling -setTemplate: on it.
source share