そうですね、コードであろうと画像の使用であろうと、必要なすべてのカスタムコンポーネントを最初から再描画する必要があります。AppKitは、Appleのヒューマンインターフェイスガイドラインに厳密に従っているため、カスタマイズすることを意図したものではありません。Appleは、すべてのネイティブアプリケーションにわたって1つの一貫したUIメタファーを作成したいと考えています。
これが実際に意味することは、アプリのテーマを設定するために多くのカスタム描画を行う必要があるということです。画像を使用すると、作業が簡単になりますが、あまり多くはありません。カスタムボタンが必要な場合は、サブクラスを作成し、必要なNSButton
画像NSButtonCell
を読み込んで描画する必要があります(サイズ変更可能なボタンをより簡単に描画する方法を確認してください)NSDrawThreePartImage()
。NSDrawNinePartImage()
テーマを設定するには、標準のOSXウィンドウの外観を描画するセミプライベートクラスであるNSWindow
サブクラスを作成する必要があります。NSThemeFrame
基本的に、必要な外観を得るには、多くのサブクラス化を行う必要があります。出来ますか?絶対。それはお勧めですか、それとも簡単ですか?それほど多くはありません。
もちろん、これが本当に必要かどうかを尋ねる必要があります。HIGのポイントは、OS X全体で1つの標準的な外観を作成しようとすることです。専門的に行わないと、テーマのある外観は扱いにくくなり、デフォルトのOSXの外観に慣れているユーザーにとっては混乱を招く可能性があります。UIテーマを含める場合は、通常、それには十分な理由が必要です(クロスプラットフォームの互換性を維持するためですが、その場合、すべてのHIGルールはウィンドウの外にあります。または、特定の外観を実現するために、làゲームUI)ですが、ユーザーが自分でUIをカスタマイズできるようにすることは言うまでもなく、実際にはお勧めしません。