だから私は完全な解決策を見つけました。
まず、Interface Builder に移動します。並べ替えたい列を選択します。列のインスペクターに移動し、最初のボタンを選択して「テーブル列の属性」を表示します。適切な値を設定します (文字通り、" または ' または @ は必要ありません)。
Sort key: file
ここで、「ファイル」は、内容が列に表示される辞書のキーです。
Selector: compare:
標準のソート機能。
ここですべての変更を保存し、NSTableView に表示されるデータのソースであるモデルであるクラスの Xcode にジャンプします。そこには2つのメソッドが必要であることをすでに知っているはずです:
-(NSInteger)numberOfRowsInTableView:(NSTableView *)tableView
-(id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn
*)tableColumn row:(NSInteger)row
これら 2 つは、NSTableDataSource 非公式プロトコルに準拠するために必要です。これについては、MacDev Center で読むことができます。
あとは、新しいメソッドを追加するだけです。
-(void)tableView:(NSTableView *)tableView sortDescriptorsDidChange: (NSArray *)oldDescriptors
それを実行する非常に単純なコードを含めることができます。
-(void)tableView:(NSTableView *)tableView sortDescriptorsDidChange: (NSArray *)oldDescriptors
{
NSArray *newDescriptors = [tableView sortDescriptors];
[results sortUsingDescriptors:newDescriptors];
//"results" is my NSMutableArray which is set to be the data source for the NSTableView object.
[tableView reloadData];
}
それだけです。それは私のアプリで動作しています。あなたのケースで動作することを願っています:D すべてが自動的に動作するはずです。すべてのファイルを保存し、アプリをビルドしました。そしてそれはうまくいきました。:)
私を助けてくれたサイト:
CocoaDev: SortingNSTableView