I understand that this is an old post, but I thought I would share my business on this :)
To make any skin for the Cocoa application you need, you are thinking about 3 aspects of the application:
1) Uniformity: by this I mean that in all windows, views (including buttons, text inputs, etc.) you want to have a "standard" that will be applied throughout the application. This is the first thing you need to see. Although iOS and OS X already have “themes” to place it, for example, “Apples” by default for shading and laying, you can redefine them (see the Separate View / Window Documentation, etc.
2) Performance: when skinning, etc. performance is always a problem when it comes to writing your own drawRect methods, etc. The core of the code, which is already used for the "default", is already optimized, so you need to carefully monitor the performance of the application while you do this. Good examples: use a gradient image or use NSGradient? Both of them have performance issues when it comes to rendering them, but the question is which is better than two
3) userDefaults: This is usually the area in which you will receive your "skin" settings. userDefaults is basically where you store all the information that you usually set in the preferences panel.
If I were you, I would look at his link:
http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/
Also, here is a great example of using userDefaults:
http://mobile.tutsplus.com/tutorials/iphone/nsuserdefaults_iphone-sdk/
Hope this helps!
source share