NSTableViewでCore Dataとバインディングしたカスタムセルの使用

2010/05/31 at 22:46 コメントをどうぞ


カスタムセルで複数の値を同時に表示するためにはその値を持っているオブジェクトを渡せばいいです。

ただし、Core DataのManaged Objectはコピー(copyWithZone)に対応していないため、そのままでは使えなません。いくつかの対応方法はあるらいしいが、一番よく使われるのはObjectIDをキーチェーンで渡し、ManagedObjectContextからObjectIDをキーに該当するオブジェクトを取得することです。以下にカスタムセルを使うテーブルのカラムのバインディングのキーチェーンをObjectIDに指定する例を示します。

次に、カスタムセルを作成し、Interface Builderで該当するテーブルのカラムを選択し、セルにカスタムセルを設定します。(下図ではTDListViewCellを設定しています。)

次はカスタムセルの作成ですが、上記の図で分かるように、カスタムセルにはxibファイルに含まれているApp Delegateをアウトレットで指定します。これはApp DelegateオブジェクトからManagedObjectContextを取得するために必要です。

カスタムセルでは-(void) drawWithFrame: inViewを実装します。ManagedObjectContextを取得し、objectWithIDメソッドを利用して該当するManagedObjectを取得します。このオブジェクト内の値をカスタムセルの描画に使用します。


これでカスタムセルでManagedObjectを取得することができるようになります。次はカスタムセルの描画のみです。

(ここまで頑張って調べましたが、残念ながらこれは今回は使わないことになりそうです。)

広告

Entry filed under: Cocoa is ....

F-Script Objective-Cのためのスクリプト言語とランタイム iPadを何に使うか?

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

Trackback this post  |  Subscribe to the comments via RSS Feed


カレンダー

2010年5月
« 4月   6月 »
 12
3456789
10111213141516
17181920212223
24252627282930
31  

Most Recent Posts


%d人のブロガーが「いいね」をつけました。