Follow up :
Reading some more, I've found that I could just use a custom representation for 
my objects, containing their index in the model array, to write to the 
pasteboard, and then use that index to perform to move when the dragging 
session is accepted.


On 28 Jan 2012, at 13:35, Luc Van Bogaert wrote:

> 
> I'm implementing drag and drop for a NSCollectionView. The idea is to 
> rearrange objects in the collection by dragging them to another location. 
> Having read the docs for NSCollectionViewDelegate and NSPasteboard, I still 
> have a few general questions about the concept.
> 
> The objects themselves conform to both the NSPasteboardWriting and 
> NSPasteboardReading protocols.
> 
> In the collection view delegate, I have implemented the protocol methods that 
> allow me to initiate a dragging session, and to write the dragged items to 
> the pasteboard. I'm writing the objects as NSData objects, using 
> NSKeyedArchiver.
> 
> I have also implemented the methods to validate and accept the drag 
> operation. In the latter, I am reading the dragged items back from the 
> pasteboard, using readObjectsForClasses:[NSArray arrayWithObject:[MyObject 
> class]]
> 
> It seems that the objects read from the pasteboard are not the same as the 
> original dragged objects; they only represent the same data. This seems 
> natural to me, as I'm using a archiver in the process, but I'm really not 
> sure if I should somehow find a way to retrieve the original objects from the 
> pasteboard. Is this at all possible?. 
> 
> If I should indeed proceed with these different objects that have been read 
> from the pasteboard, I'm wondering how to effectively perform the move in my 
> model array:  should I just insert the objects into my array model object at 
> the desired location and remove the original ones, or should I try to find a 
> way to reference the original objects (using an identifier in the items 
> obtained from the pasteboard) and move those around in my model array?
> 
> If the latter; what kind of identifier could be used for this? Some kind of 
> ivar with a unique value? How to generate something like this?

-- 
Luc Van Bogaert

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to