たぶん、誰もこれらの新しいビューベースのテーブルを使用していないか、あるいは皆戸惑っているのかもしれません。3 週間が経ち、コードレスとまではいかない解決策を見つけたので、それを共有したほうがよいと思います。
その秘密はテーブルのソート記述子バインディングであり、これをNSSortDescriptorsの配列にバインドする必要があります。後から考えると明らかです。道徳:ブリキに書かれていることを理解しよう!私は単純に、ここでソート記述子を定義したり、ソート可能なオブジェクトにバインドしたりできると考えていました。Interface Builder は設計時のものです。もちろん、何も機能しませんでした。例を続けると、次のようになります。
配列プロパティを宣言します。私はアプリデリゲートでこれを行いました。
@property (assign) NSArray *dateSorters;
そして合成します。OS 10.7 では、一致する ivar は必要ありません。初期化します。私はこれをしましたapplicationDidFinishLaunching:
dateSorters = [NSArray arrayWithObject:
[[NSSortDescriptor alloc] initWithKey:@"date" ascending:NO]];
それがアクティブなコードの唯一の行です。今バインディング。モデル キー パスdateSortersを使用して、配列コントローラーの並べ替え記述子をアプリ デリゲートにバインドします。可能性のリストに表示されない場合は、ビルドを試してください。テーブルがソートされて表示されます。列ヘッダーのクリックを機能させるには、テーブルのソート記述子を同じ配列にバインドし、列を日付フィールドに関連付ける必要があります。日付列を選択して、その値を配列コントローラーにバインドし、モデルを使用して配列オブジェクトをバインドします。 Key Path date、および checkソート記述子の作成. これは、セル ベースのテーブルに対して行う場合と同じです。日付列のヘッダーをクリックすると、並べ替え順序が切り替わるようになりました。意図したとおり、他の列ヘッダーをクリックしても何も起こりません。
小さな問題が 1 つ残っています。最初に表示されたとき、テーブルはソートされていません。