0

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

4

1 に答える 1

2

NSBrowserNSMatrix、およびのカスタム サブクラスを作成することで、これを解決しましたNSBrowserCell。このモードは常にリセットされていたため、サブクラスメソッドでこのモードを設定してモード(単一セル)を強制的NSBrowserに使用する必要がありました。NSRadioModeMatrixNSBrowser-mouseDown

NSBrowserCellサブクラスでは、スーパークラスにそれを実行させるだけで実装しましたが、追跡が発生するようtrackMouse:inRect:ofView:untilMouseUp:に戻り、サブクラスで呼び出すことができました。次に、マウスの位置を取得し、マウスの画像を作成し、.NOmouseDragged:NSMatrixmouseDragged:[self dragImage:at:offset:pasteboard:source:slideBack:]

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

于 2012-04-17T21:28:49.790 に答える