NSTreeController を NSOutlineView と共有するブラウザーを実装したので、それらを簡単に切り替えて状態を同期させることができます。NSOutlineView のドラッグ サポートの実装は簡単ですが、NSBrowser はバインディングを使用している間はドラッグをサポートできないようです。バインディングを使用しながら、NSBrowser からのドラッグをサポートできた人はいますか?
1 に答える
2
NSBrowser
、NSMatrix
、およびのカスタム サブクラスを作成することで、これを解決しましたNSBrowserCell
。このモードは常にリセットされていたため、サブクラスメソッドでこのモードを設定してモード(単一セル)を強制的NSBrowser
に使用する必要がありました。NSRadioModeMatrix
NSBrowser
-mouseDown
NSBrowserCell
サブクラスでは、スーパークラスにそれを実行させるだけで実装しましたが、追跡が発生するようtrackMouse:inRect:ofView:untilMouseUp:
に戻り、サブクラスで呼び出すことができました。次に、マウスの位置を取得し、マウスの画像を作成し、.NO
mouseDragged:
NSMatrix
mouseDragged:
[self dragImage:at:offset:pasteboard:source:slideBack:]
これが最善のアプローチかどうかはわかりませんが、うまくいきました。で単一の選択が許可されている場合にのみ機能しNSBrowser
ます。
于 2012-04-17T21:28:49.790 に答える