Obj.C

obj.C:NSTreeControllerスタディやり直し4

NSTreeController and NSArrayControllerの相関図に漏れとまちがいがありましたので修正しました。

  • Tree Controllerのbinding to App Delegateを追加。
  • App DelegateでrootPathを設定する箇所/関連を明記。
  • tableColomun – Contentsは、binding to Array Controllerが正しいので修正。

スクリーンショット 2014-06-04 09.30.16※Tree ControllerのChildrenをmmChildrenArray(配列)から CallChildren (自作メソッド)に変更しました。まちがいだと判明したため。

追記:

  • Key PathsのChildrenとLeafに設定するメソッドによってLeafかNonLeafかが決まります。
  • Leafに設定したメソッドが実行される場合、▶︎で展開可能になります。
  • Childrenに設定したメソッドが実行される場合、▶︎はつきません。

注意事項:mmChildrenArrayやmmFilesArray等の配列をメイン側のグローバル変数で定義すると、フォルダが永久に展開される問題が発生します。これは、Tree Controllerがリカーシブルな動きをしていることと関連しているかもしれません。

追記:今まで、AppDelegate➡MesaClip➡FileNode(Tree Controller)のシーケンスで動いているものと思い込んでいたのですが、そうでないと思いはじめました。それで、AppDelegate➡FileNode(Tree Controller)➡MesaClipになるように書き換えています。こうすることで、FileNodeで取れた情報をMesaClipに渡せるようになりました。多分、これで想定した機能が実現できるはずです。