2012-04-17 8 views
0

NSTreeControllerをNSOutlineViewと共有するブラウザを実装したので、それらを簡単に切り替えて状態を同期させることができます。 NSOutlineViewのドラッグサポートを実装するのは簡単ですが、NSBrowserはバインディングの使用中にドラッグをサポートできません。バインディングを使用している間にNSBrowserからのドラッグをサポートできる人はいますか?NSBrowserからドラッグしてバインディングを使用しますか?

答えて

2

カスタムサブクラスNSBrowser,NSMatrixおよびNSBrowserCellを作成してこれを解決しました。このモードをNSBrowserサブクラス-mouseDownに設定することによって、NSBrowserNSRadioModeMatrixモード(シングルセル)を強制的に使用して強制的にリセットする必要がありました。私は単にスーパークラスを持つことによってtrackMouse:inRect:ofView:untilMouseUp:を実装NSBrowserCellサブクラスで

は、それがことだけど、そうmouseDragged:は私NSMatrixサブクラスで呼ばれるように許され、生じる追跡NOを返しました。 mouseDragged:で私はマウスの位置を取得するためにすべてのものをし、マウスの画像を構築し、[self dragImage:at:offset:pasteboard:source:slideBack:]を使用しました。

これが最善のアプローチであるかどうかは分かりませんが、うまくいきます。 NSBrowserに1つの選択が許可されている場合にのみ機能します。

関連する問題