私は、NSCollectionView
でかなりうまく稼働していますNSArrayController
。私のコレクションビューアイテムは複数選択可能に構成されており、満足しています。ただし、コレクションビュー内でマウスドラッグイベントが発生すると、選択長方形が描画されます。この選択長方形の描画を無効にして、複数の選択を保持するにはどうすればよいNSCollectionView
ですか?助けてくれてありがとう!
2 に答える
NSCollectionView
はかなり不透明なクラスであり、その基本的な動作を簡単に変更できる方法はそれほど多くありません。
ドラッグアクション_performDragFromMouseDown:
は、オーバーライドではなく、プライベートメソッドによって処理されるように見えますmouseDragged:
。正確にプライベートメソッドが何をするのかはわかりません。
簡単な答えは、のプライベートメソッドを変更する以外に選択の外観を変更することはできないということですNSCollectionView
。
NSCollectionView
この動作を変更する必要がある場合は、代わりにカスタムビューを使用する必要がある場合があります。
最新のNSCollectionView
(2015年にリリースされたと思いますか?)viewForSupplementaryElementOfKind
では、選択長方形を描画するためのビューを取得するようにデリゲートに要求します。
デリゲートで比較することで、kind.rawValue
この状況を「キャッチ」できます。描画したくない場合は、を描画します。"NSCollectionElementKindSelectionRectIndicator"
return NSView()
描画したい場合collectionView.makeSupplementaryView(ofKind:
は、のrawValueを使用して手動で作成した種類/識別子を使用して戻り"NSCollectionElementKindSelectionRectIndicator"
ます。これらの種類/識別子は、2015年以降、列挙型から欠落していると私は信じており、NSCollectionViewを実装するたびに悲しみを覚えます。
編集:私はこれについてApple Developer Forumsで作成した古い投稿を調べましたが、その場合は警戒する必要があると述べnumberOfSections == 0
ましreturn NSView()
た。