2017年04月10日

[Mac,Swift2]NSTableViewでソートする

NSTableViewで列を指定して並べ替える方法は、Objective-Cでは簡単に実装することができた。NSArray/NSMutableArrayがNSSortDescriptorを使うメソッドを以て致し、NSArrayが保持しているオブジェクトがNSObjectを親クラスに持っていればkey-value対応により適切に応答してくれた。Mac/iOSのObjective-Cでは全てのオブジェクトはNSObjectを親クラスに持つ。

例えばこんな感じ。


- (void)tableView:(NSTableView *) aTableView
sortDescriptorsDidChange:(NSArray *) oldDescriptors
{
[mainList sortUsingDescriptors:[mainListView sortDescriptors]];
[mainListView reloadData];
}


※ここでは以下のようなインスタンス変数の宣言がされているとする。

IBOutlet NSTableView *mainListView;
NSMutableArray *mainList;


ところが、Swiftの配列はNSSortDescriptorを引数に持つメソッドがない。ということは自分で実装しなければならない。

続きを読む
posted by 永遠製作所 at 00:58| 東京 ☁| Comment(0) | TrackBack(0) | Swift | このブログの読者になる | 更新情報をチェックする