0

Cocoa(iOSではなくMac)アプリケーション用のカスタムカラーピッカーを作成しようとしていますが、問題が発生しています。私はコンピューターグラフィックスや描画のさまざまなパターンに精通していますが、Cocoaは初めてです。問題は、基本的に、多層グラフィックステクノロジーの中で迷子になることだと思います。

私が実装しようとしているのは、より大きなサイドバービューにドッキングされたカラーピッカーなので、標準のフローティングパネルを使用するよりも、自分で描画するのが最善だと思いました。(私には正当な理由があります。AppleのHIGからの逸脱に関する警告について言及する必要はありません。)NSImage(この場合はcolorWheel.PNG)をクリックしたピクセルの色を取得するための最良の方法を調査したところ、それが最良であることがわかりました。コアグラフィックスに移動し、画像を自分のビットマップコンテキストに描画します。

...そしてそれは私が成功した限りです。コンテキストは正常に作成されましたが、ここからどこに進むべきか、これがやり過ぎかどうかはわかりません。私が探しているのは、これらのクラスが相互にリンクしている階層の確かな説明であり、私が探している効果をどのように作成するのが最善かということだと思います。画面外に描画することは、このアプリケーションの多くの部分で役立ちます。私はそれをよりよく理解したいと思います。

前もって感謝します。

4

1 に答える 1

1

迅速な解決策:

画面外に描画する必要はありません。
NSImageからNSBitmapImageRepを作成するだけです。
そして、colorAtX:y:を使用してNSColorを取得します。

もちろん、NSBitmapImageRepを作成する必要があるのは1回だけです。
次に、ユーザーがクリックしてマウスを動かすたびに色を検索します。
私のアプリでは、これによってパフォーマンスの問題が発生することはありません。

NSViewを使用してPNGを表示し、座標を取得します。

于 2011-02-20T02:30:20.127 に答える