nscollectionViewへのドラッグの検証は視覚的には反映されません
-
11-10-2019 - |
質問
私は、アプリケーションの他の場所からドラッグされたアイテムを受け入れたいNSCOLLECTIONVIEWを持っています。
実装します collectionView:validateDrop:proposedIndex:dropOperation:
と collectionView:acceptDrop:index:dropOperation:
CollectionViewのデリゲートで、適切なドラッグされたタイプに登録します。適切なタイプをドラッグすると、両方の方法が正常に呼ばれますが、有効なドラッグを示すコレクションビューの上に青いフォーカスリングを取得しません。
コレクションビューと、フォーカスリングのデフォルト設定と外部設定でのスクロールビューの両方を試しました。どちらも標準的な非由来のココアクラスです。他に何か試してみるべきかどうか疑問に思いました。確かに、このためにnscollectionViewをサブクラス化する必要はありませんか?
ありがとう
クリス
解決
フォーカスリングは、通常、ドラッグの目的地に関するフィードバックを提供する正しい方法ではありません。すべてのビューはそれを少し違った方法で行います。 nStextViewには、挿入バーが表示されます。 nstableviewは、行の間に青い線を示しています Before
操作をドロップし、列の周りにベゼルを表示します On
ドロップ操作。 (見る NSTableViewDropOperation
)
nscollectionViewは、既存のサブビュー間の「ギャップ」を示して、アイテムがどこにドロップされるかを示す Before
操作をドロップすると、設定されます selected
nscollectionViewitemのプロパティ YES
にとって On
ドロップ操作。 (注:nscollectionViewItemは、デフォルトでは何もしません。 selected
財産。あなたはそれを自分で実装する必要があります。)
nscollectionViewのフィードバックは既存のサブビューのみを使用しているため、空のnscollectionViewのフィードバックはまったくないようです。この行動を自分で提供するには、サブクラスが必要です。また、nscollectionViewがこれを実行するようにバグを提出することもできます。