2011-01-20 16 views
0

NSTableViewをカスタマイズしたいと思います。私の全体的な要件は次のとおりです。透明NSTableView

  • 各行には1つのイメージとテキストがあります。画像とテキストは異なる場合があります。
  • 一部のセルに画像がない可能性があります。
  • 行の高さは、いくつかの外部要因に依存します。
  • セルに背景を描画しないでください。NSTableViewの背景が表示されます。

これまでのところ、テキストで透明なセルを描くことができました。私はグーグルで、各セルをカスタマイズする必要があることを知った。今私はこの質問を持っています:私は2つの列を維持するか、1つの列は大丈夫ですか、左側のイメージとそれに隣接するテキストを持つ必要がありますか?

はまた、私は2つのメソッドをオーバーライドする必要があることを理解:

各セルのだから、
- (void) drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView 

、私はセルを構築/描画する必要がある - 誰も私を導くことができますか?私は正しい方向に進んでいますか?上記の方法で動的な高さの透明な背景を実現できますか?

答えて

1

各行は、ので、2つの列、一つの画像セルと、テキストフィールドのセルを有する他の一つの画像とテキスト、

を有するであろう。

画像やテキストが異なる可能性があり、

私はそう願っていなければなりません。いくつかのセルイメージを持っていない可能性があります

問題ありません。

行の高さが

は、テーブルビューのデリゲートして、いくつかの外部要因に依存している、そしてそれはあなたの行の高さがすべきかを尋ねます。

セルは

それはあなたはそれがそうするように設定されていないでしょうがない限り、背景を描くべきではありません。

それは全体的にはNSTableViewの背景を表示する必要がありますする必要があり、

テーブルビューでは、IBのインスペクタで設定することができ、いずれにせよ、独自の背景を描画します。テーブルビューで背景を描画しない場合は、その背景色をクリアカラーに設定します。

これにカスタムセルは必要ありません。

+0

ありがとう、私はすべての可能なデリゲート関数を探しています、実際に私は2つのcoloと一緒に透明な背景とテキストを表示することができますが、私はどのように1つのcol 。 – Amitg2k12

+0

私が言ったように、その列にイメージセルを配置する必要があります。 「IBユーザーガイド」を参照してください。データソースおよびデリゲートメソッドはすべて、これらのプロトコルのドキュメントに記載されています。 –

+0

こんにちはピーター、私はココアの初心者です、これまでのところ、 – Amitg2k12