17

私は長い間探していたようですが、私の問題に対する素晴らしい、簡単な答えが見つかりませんでした。

Cocoa/ObjC で XCode を使用しており、NSDictionary/Array からセルのさまざまなセクションに値をロードする NSTableView を作成しようとしています。

たとえば、NSImage、NSTextField、およびその他の項目を (背景画像と共に) カスタム セルに取得しようとしています。ただし、これを作成する方法についての簡単な答えが見つかりません..

私はしばらくUITableViewsを使ってiPhone用にコーディングしてきましたが、NSTableViewsで同様の方法を見つけることができないようです。

どんな助けでも本当に素晴らしいでしょう!

ありがとう

ドミニク

4

3 に答える 3

26

NSTableView には-tableView:dataCellForTableColumn:row:. デリゲートで NSCell サブクラスを作成し、その行のカスタマイズが必要な場合はそれを返すだけです。テーブル ビューのすべての行にカスタム セルを使用しているだけの場合は、IB を使用してカスタム セル クラスを設定することもできます。

テーブル ビューは必要に応じてセルをコピーするため、より効率的な場合はセルをインスタンス変数として保持できます。テーブル ビューのデータ ソース メソッドまたはバインディングは通常どおりに機能しますが、単一の文字列または数値ではなく、入力済みの辞書を返すだけです。カスタムモデルオブジェクトをテーブルビューに直接渡すこともできますが、コピー可能にするかsetObjectValue:、セルをオーバーライドして NSValue にラップする必要があります。

問題を引き起こしているのが NSCell のサブクラス化である場合、それは少し学習経験になる可能性があります。すべてのカスタム オブジェクトを描画することから始めて-drawWithFrame:inView:、さらに機能が必要になったらそこから進んでください。

于 2009-05-26T12:47:58.473 に答える
8

WWDC 2011のビデオ「ビューベースのNSTableViewベーシックからアドバンスト」(セッション120)を見る

https://developer.apple.com/videos/wwdc/2011/

これは、Lion(10.7)以降に適用されます。

于 2012-01-17T22:59:00.157 に答える