2

これが意味するのは、ユーザーが望む場合、標準のOS Xの外観とカスタムの外観(画像ファイルからロードされる)の両方を可能にする方法で、デフォルトのAppKitコントロールを書き換え/拡張するのにどのくらいの作業が必要になるかということです。(WinAmpまたはWindows Media Playerを考えてみてください。)これをMacに持ち込もうとした人はいますか?

NSWindowまたはボタン電池を再描画する方法を理解していますが、それはすべてハードコーディングされています。ユーザーが自分で追加できるものが欲しいです。私のオプションは何ですか?

4

2 に答える 2

2

そうですね、コードであろうと画像の使用であろうと、必要なすべてのカスタムコンポーネントを最初から再描画する必要があります。AppKitは、Appleのヒューマンインターフェイスガイドラインに厳密に従っているため、カスタマイズすることを意図したものではありません。Appleは、すべてのネイティブアプリケーションにわたって1つの一貫したUIメタファーを作成したいと考えています。

これが実際に意味することは、アプリのテーマを設定するために多くのカスタム描画を行う必要があるということです。画像を使用すると、作業が簡単になりますが、あまり多くはありません。カスタムボタンが必要な場合は、サブクラスを作成し、必要なNSButton画像NSButtonCellを読み込んで描画する必要があります(サイズ変更可能なボタンをより簡単に描画する方法を確認してください)NSDrawThreePartImage()NSDrawNinePartImage()テーマを設定するには、標準のOSXウィンドウの外観を描画するセミプライベートクラスであるNSWindowサブクラスを作成する必要があります。NSThemeFrame

基本的に、必要な外観を得るには、多くのサブクラス化を行う必要があります。出来ますか?絶対。それはお勧めですか、それとも簡単ですか?それほど多くはありません。


もちろん、これが本当に必要かどうかを尋ねる必要があります。HIGのポイントは、OS X全体で1つの標準的な外観を作成しようとすることです。専門的に行わないと、テーマのある外観は扱いにくくなり、デフォルトのOSXの外観に慣れているユーザーにとっては混乱を招く可能性があります。UIテーマを含める場合は、通常、それには十分な理由が必要です(クロスプラットフォームの互換性を維持するためですが、その場合、すべてのHIGルールはウィンドウの外にあります。または、特定の外観を実現するために、làゲームUI)ですが、ユーザーが自分でUIをカスタマイズできるようにすることは言うまでもなく、実際にはお勧めしません。

于 2012-04-21T16:31:00.713 に答える
0

はい、これは完全に可能です。しかし、AppKitを使用してこれを実行したいのは確かですか?たぶん、CSSによるスキニングをサポートするQTのようなクロスプラットフォームソリューションを使用する方が良いでしょうか?

于 2012-04-21T20:30:49.057 に答える