私は雑誌のページをレイアウトするアプリを持っています。このアプリケーションは、NSViewのマガジン(NSScrollViewのcontentView)であるMasterPageというマガジンのページ(NSViewというクラスのNSView)をレイアウトします。スクロールビューのページグリッドを考えてみましょう。NSView:スーパービューから別のNSViewにサブビューをドラッグ
「ページ」に広告(クラス=広告)を表すサブビューが自動的に配置されます。私はスーパービュー(ページクラスのNSView)とMasterPageのサブビュー(他のページクラスビュー)の間でこれらの広告をドラッグできるようにしたいと思います。
広告クラスNSViewをPageクラスNSViewにドラッグすると、最初に配置されたNSViewがmouseDraggedメソッドを呼び出すことができますが、広告クラスのサブビューをスーパービューから「解放」して別のNSViewにドラッグするにはどうすればよいですか?
うまくいけばうまくいきました。
ありがとう、私はその方向に行っていた。私はそれをスーパービューとcontentViewに出すことができますが、ドラッグは無効になります – PruitIgoe
これはうまくいくとは思えませんが、試したことはありません。ビューの階層から削除されているビューは、ドラッグする機械を台無しにしているからです。この場合、ビューをそのままにしておくことをお勧めしますが、ドラッグ中に空白として再描画し、正常に終了したらビューを完了することをお勧めします。 –
mouseDown、mouseMoved、mouseUpを手動で追跡する必要があります。私がこれをしてからしばらくしている。 Joshuaのところでは、ビューをビットマップにレンダリングし、ビューを非表示にしてビットマップをドラッグすることができます。これは、パフォーマンスと効果を適用する上で効果的です(ドラッグアンドドロップが一般的にどのように実装されているか)。 –