Archive for the ‘NSOutlineView’ Category

画面を立ち上げた段階で、NSOutlineViewのすべての項目を開きたい!!
と思って、実装してみた。

やり方があってるかどうかは微妙だけど、
なんかそれっぽく動いたのでよしとしましょ。

  1. //前提として、
  2. //この処理の前に_treeArrayの値をセットして、NSTreeControllerを介して
  3. //OutlineViewに表示している。(IBOutletでOutlineViewは接続済み)
  4. //awakeFromNibの部分で以下のコードを実行。
  5.  
  6. //itemの総数を取得(階層レベルが一番上の個数)
  7. int count = [ _treeArray count ];
  8.  
  9. //ループ
  10. //ただし、スタートを総数-1からにしている。
  11. //これは、0からスタートしてしまうと、ROWの総数と階層レベルが一番上の個数とがずれてしまうから。
  12. //NSOutlineViewは子を開くとそれだけROWが増えてしまうので、
  13. //一番上のレベルのアイテムを選択できない。
  14. int i;
  15. for ( i = count - 1; i>=0; i ){
  16. [ OutlineView expandItem:[ OutlineView itemAtRow:i ] expandChildren:YES];
  17. }

注意が必要なのはループの回し方だけですね。