Archive for the ‘NSTableView’ Category

CocoaBindingで設定しているNSTableViewはヘッダーをクリックすることで、
ソートすることができる。

並び替えの順を変更するのは、他のサイト等でも紹介されているが、
並び替えさえさせないようにする方法についてのまとめ。

次の一行でソートできなくさせられる。

CocoaBindingでつないでいるNSArrayControllerに対して、
[ arrayController setSortDescriptors:nil];
これでソートさせないようにできる

自分の使い方としては、次のように使用した。
テーブルビューのデリゲート(didClickTableColumn)で以下のように使用

  1. - (void)tableView:(NSTableView *)tableView didClickTableColumn:(NSTableColumn *)tableColumn{
  2.   if( [ tableView tag] == 0){ //複数テーブルビューがあるため、tagを設定している
  3.     if ( [ [ tableColumn identifier] isEqualToString:@"icon"]){ //identifierが「icon」のカラムのみ有効
  4.       [ arrayController setSortDescriptors:nil];
  5.     }
  6.   }
  7. }