« Mac OS X 用メモ帳ソフトの作成に挑戦(3) | トップページ | 太陽光発電2010年3月の実績 »

2010年3月28日 (日)

Mac OS X 用メモ帳ソフトの作成に挑戦(4)

Core Data を使っていると、Table View の表示順序が起動するたびに変わってしまいます。どうやらCore Data では、データの順序が保存されないようです。

仕方が無いので、メモ箱はソートして表示するようにしていましたが、やっぱり自分の好きな順序に並べたい。ネットで調べてみると、Core Data の属性に順序を示す数値を保存しておいて、その属性を使ってDrag & Drop で並び替える方法が見つかりました。

Image_100328_1まず、Xcode のデータモデリングツールでエンティティBox に順序を保存するための属性order を追加します。そして、NSTableView のカラムを1つ増やし、Cocoa Binding でorder の内容が反映されるようにします。このorder のカラムは、Hidden をオンにして表示されないようにしておきます。

次にサンプルコードを参考にしながら、メモ箱を追加したときにorder に番号を追加するコードと、Drag & Drop のコードを追加。処理の中身は良く分からないところもありますが、なんとか自分の好きな順に並び替える事が可能になりました。良い感じです。

しかしUNDO を行うと、order 属性は元の状態に戻りますが、Table View の表示内容が変わりません。要するに、order の順序と、実際に表示されてる順序が異なるという状態になってしまいます。どうしたものか... 。

追記(2010/4/25)

Interface Builder で、NSArrayController のオプションである「Auto Rearrange Content」にチェックを入れれば、UNDO時にTable View の表示が更新されることが分かりました。

« Mac OS X 用メモ帳ソフトの作成に挑戦(3) | トップページ | 太陽光発電2010年3月の実績 »

Mac」カテゴリの記事

パソコン・インターネット」カテゴリの記事

プログラミング」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/212936/47936166

この記事へのトラックバック一覧です: Mac OS X 用メモ帳ソフトの作成に挑戦(4):

« Mac OS X 用メモ帳ソフトの作成に挑戦(3) | トップページ | 太陽光発電2010年3月の実績 »

フォト

最近のトラックバック

無料ブログはココログ