Я понимаю, что это старый пост, но я решил поделиться своей копейкой по этому вопросу:)
Чтобы сделать любое приложение Cocoa скинируемым, вам нужно продумать 3 аспекта приложения:
1) Единообразие: под этим я подразумеваю, что во всех окнах, представлениях (включая кнопки, ввод текста и т. Д.) Вы хотите иметь «стандарт», который будет применяться во всем приложении. Это первое, что вам нужно посмотреть. Хотя и в iOS, и в OS X уже есть «темы», то есть Apple применяет способ затенения и разметки по умолчанию, вы можете переопределить их (см. Документацию по отдельному виду / окну и т. Д.).
2) Производительность: со скинами и т. Д. Производительность всегда является проблемой при написании собственных методов drawRect и т. Д. Код, который имеет Apple для «по умолчанию», уже оптимизирован, поэтому вам нужно внимательно следить за производительностью приложения, пока вы это делаете. Хорошие примеры: я использую изображение с градиентом, или я использую NSGradient? Оба из них имеют проблемы с производительностью, когда дело доходит до их рендеринга, но это вопрос, который является лучшим из двух
3) userDefaults: Как правило, это та область, из которой вы получаете свои настройки скина. userDefaults - это, в основном, место, где вы храните всю информацию, которую вы обычно устанавливаете в панели настроек.
На вашем месте я бы посмотрел ссылку на класс:
http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/
Кроме того, вот отличный пример использования userDefaults:
http://mobile.tutsplus.com/tutorials/iphone/nsuserdefaults_iphone-sdk/
Надеюсь, это поможет!