Domanda

Ho un NSCollectionView che voglio accettare oggetti trascinati da altrove nella mia applicazione.

I implementare collectionView:validateDrop:proposedIndex:dropOperation: e collectionView:acceptDrop:index:dropOperation: nella delegato del CollectionView e registrarsi per l'appropriato trascinato tipi. Entrambi i metodi vengono chiamati bene quando mi trascina i tipi appropriati, ma non ottengono un anello di messa a fuoco blu sopra il CollectionView che indica un peso valido.

provato sia la vista e la sua collezione contenente vista di scorrimento delle impostazioni di default ed esterni per l'anello di messa a fuoco. Entrambi sono solo le classi standard non-derivati ??del cacao. Si chiese se c'era qualcos'altro che dovrei provare. Sicuramente non è necessario creare una sottoclasse NSCollectionView per questo?

Grazie
Chris

È stato utile?

Soluzione

Focus anelli non sono in genere il modo corretto di fornire un feedback su destinazioni di trascinamento. Ogni vista lo fa in modo leggermente diverso. NSTextView mostra la barra di inserimento. NSTableView mostra una linea blu tra righe per operazioni Before goccia, e mostra una lunetta intorno alla riga per operazioni On goccia. (See NSTableViewDropOperation)

NSCollectionView mostra un "gap" tra subviews esistenti per mostrare dove gli articoli saranno eliminati operazioni Before goccia, ed imposterà la proprietà selected su NSCollectionViewItem per YES per operazioni On goccia. (Nota:.. NSCollectionViewItem non fa nulla per impostazione predefinita per rappresentare visibilmente la proprietà selected È necessario implementare che da soli)

Dato che usi Feedback del NSCollectionView subviews esistente solo, sembra che non c'è alcun feedback a tutti per vuoto NSCollectionView di. Si avrebbe bisogno di una sottoclasse di fornire questo comportamento da soli. Si potrebbe anche presentare un bug per richiedere che NSCollectionView fare questo in sé.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top