私は何週間もこれを正しくしようとしてきました。不発から多くのことを学びましたが、現時点では解決策が必要です. 問題は、Cocoa に含まれている一見オーバーラップしているグラフィックスと UI API をアンパックすることです。これらの多くは同様の効果を生み出しますが、多くの場合、実装に何時間も費やした後に初めて発見した独自の制限があります。
Cocoa は初めてですが、プログラミングは初めてです。非常にカスタマイズされた UI を備えた Mac アプリを作成しようとしています。Capo、Garageband、または Billings を考えてみてください。私のウィンドウの 1 つのビューは、サブビューの順序付けられたリストを表示します。各サブビューは多くのカスタム描画を行い、それぞれが「選択された」状態とドラッグの並べ替えをサポートする必要があります。サブビューは、スーパービューの外へのドラッグをサポートする必要はありません。
理想的には、ドラッグが起こったときにアニメーション化されたフィードバックを提供し、ツールバーのアイコンや Safari のブックマーク バーなど、隣接する兄弟ビューを押してスペースを作ります。問題は、これを正しく行うための適切なテクノロジのパックに着地できないように見えることです。サブビューを NSCollectionView の NSView サブクラスとして、またカスタム CollectionView のような NSView の CALayers として実行しましたが、どちらも完璧なソリューションを提供していないようです。とはいえ、マウスイベントの処理が優れているという点では、2 つのうち最初のオプションの方が優れているようです。
私はまだこれをTableViewとして試したことはありません。正しい軌道に乗っているという兆候がなければ、その道をたどりたくありません。大規模なグーグル検索は、CoreAnimation 対応の並べ替えまたはドラッグに関する最新のリソースがないことのみを示しています。OS X UI の標準機能として、これはもっと簡単にすべきだと思います!
この仕事に適したツールが何であるかについて、誰からの助けも大歓迎です。ティア。