にNSOutlineView
バインドされている がありNSTreeController
ます。アウトラインビューの項目(複数選択)は、ドラッグ&ドロップで並び替えができます。
アウトライン ビューの並べ替えを元に戻す/やり直す機能を追加したいと考えています。これを行う方法を示すサンプルコードを誰か指摘できますか?
変更を元に戻すと、ツリー コントローラーの構造が変更され、残りのノードのインデックス パスが元の位置に戻されるため、移動したツリー ノードのインデックス パスを再構築するのに苦労しています。
このコードを使用して、最初にノードを移動します。
[self.treeController moveNodes:draggedTreeNodes toIndexPath:insertIndexPath];
moveNodes:
単一のインデックス パスのみを引数として取る方法に注意してください。複数のノードを含む選択の場合、すべてを一度に戻すことはできませんが、変更を 1 つずつ再生する必要があります (インデックス パスを無効にするという上記の問題が発生します)。