何かの符号付きの「間違い」をグラフィカルに表示する必要があります。つまり、0 は完全、-1.0 は一方の方向が完全に間違っている、0.3 は部分的に正しいが右に歪んでいる、1.0 はもう一方の方向が完全に間違っている、などです。電圧計のようなものです。
私は検索して検索しましたが、私が見つけた最も近いスレッドはBi-directional level indicatorでしたが、それは突然終了したようで、提案された解決策はポスター (または私の) 要件に適合していないようです。
私は絵を描くことはできませんが、私が言いたいことを説明するために IB で大雑把なモックアップを作成してみました。外側の領域は異なる色になり、最終的な実装にはおそらく軸情報やその他のものがあるでしょう。(どうやら私は画像を投稿することを許可されていません。代わりにアスキー アートを試してみます)
スポット:
[....|....]
左に完全に間違っています:
[|||||....]
右に完全に間違っています:
[....|||||]
部分的に間違っています:
[....|||..]
さて、いくつかのオプションがあると思います:
サブクラス NSLevelIndicator (または NSLevelIndicatorCell)これは気にしませんが、どうすればよいかよくわかりません。Web を検索して、スタイルの変更 (角の丸み、fx) や重要な色の反転などの質問に対する回答を見つけましたが、そのような解決策は、描画関数の完全なオーバーライドを暗示しているようです。つまり、NSLevelIndicator(Cell) が失われることを意味しますグラデーションとすべてであなたのためにやっています。さまざまな変数を操作して、実際の描画を避けられることを願っていました。
カスタムビューを作成する 私はグラフィカルにまったく気にしていませんが、最初は Apples custom view guide: Subclassing NSViewになると思います。Apple には私よりも優れた UI デザイナーがいると確信しているため、標準の UI コンポーネントを可能な限り使用したいと考えています。以前にカスタム 2D グラフ ビューを作成しましたが、これで問題ないと思いますが、私の意見では、それは実際にはカスタム ビューに近いものです。
他の誰かの実装を借ります (またはインスピレーションを得るために調べます)検索しましたが、何も見つかりませんでした。NSLevelIndicator に似ている必要はありません。電圧計または類似のものである可能性があります。
では、どのアプローチをとればよいでしょうか。1 または 3 の場合、ガイドが必要です。2 の場合、Apple のドキュメントが私のような初心者にとって十分かどうか、またはさらに詳しい情報が必要かどうかを知りたいです。
PS: 同じ投稿で複数の質問をするのはおそらく賢明ではありませんが、おまけの質問と考えてください。NS* のものをサブクラス化するとき、どのメソッドをオーバーライドするかをどうやって知るのでしょうか? Apple のクラス リファレンスには、私が知る限り、パブリック メソッドのみがリストされています。私がやっていることは、サブクラスを作成してから「self」と入力することです。何が表示されるかを確認しますが、それを分類するのは簡単ではありません。