開発においてなかなかに苦戦したのがswiftでのTreeViewである。 色々と癖があるのですよこれ。 自分の場合OutlineViewってのを使ったのだけれども。 まず最初にNSOutlineViewDelegateをextendsしてツリークリックや展開の処理をViewControllerに委譲させる。 そしてNSOutlineViewDataSourceもextendsさせてデータソースを扱うようにする。 んでオーバーロードされているoutlineViewそれぞれをオーバーライドさせる。文章だけじゃ分かりづらいっすねえ。 要は何個ありますか?ってのをオーバーライドして、ツリーを開いたら何を出す?てのをオーバーライドして、クリックしたらどうする?ってのをオーバーライドして、とそんな感じなのですよ。 VisualStudioはイベント駆動型で実装できるからOnExpandとかOnSelectとかそんな感じでフックをかければ簡単に実装できるのだけど、同じ気持ちでswiftやったらえらい大変でした。 まぁuwpはTreeView自体無いのですが。 当然のことながらiOSとは仕様も違うし、なんだかこういうnotify系は今のswift3だとなんか挙動がおかしいとかなんとか。 ウィンドウのリサイズもうまく通知を受け取れなかったし。 やり方が悪いのかそれともswiftが悪いのか。 本気でstack overflowに書き込もうか迷った件でしたね。 第1回「ぐぐって出てくるのはどれもこれもiOS」 第2回「配列を渡すとインスタンスがコピーされた」 第3回「初期化しないメンバ変数なんて許しません」 第4回「NSStringとString、NSURLとUrl」 第5回「for文が、++が、、、」 第6回「ビルドおもーい」 第7回「do、try、catch」 第8回「swift2では動くのにswift3では動かない」 第9回「ふおおWindowsFormみたい」 第10回「Labelの値を変える」 第11回「windowControllerとViewControllerとView」 第12回「ボタンはViewController、メニューはDelegate」 第13回「TreeViewのしんどさ」 第14回「¥nマークは改行しません」 第15回「instantiateじゃ駄目ぇ」 第16回「ScrollViewの中にTextView」 第17回「ファイルをどう読み書きすればいいんじゃ」 第18回「右クリック・・・」 第19回「isIntなんて無いです」 第20回「anyはswitchでキャスト」 第21回「MessageBox.Show」 第22回「BezierはViewの中で」 第23回「512pxのアイコンを用意せよ」 第24回「アーカイブ作成」 第25回「これから始める人へ」