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 | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。