Re: Dragging an item to a folder in the Dock
Re: Dragging an item to a folder in the Dock
- Subject: Re: Dragging an item to a folder in the Dock
- From: Lorenzo <email@hidden>
- Date: Thu, 31 Jul 2003 23:21:29 +0200
Hi,
let's suppose the data shown in the NSTableView
is the array "listArray". Each row of the array is an NSDictionary
containing several objects, one object for each column. One of this object,
with the key @"fileName" contains the fileName you want. So, take a look at
the following code.
- (BOOL)tableView:(NSTableView *)tv writeRows:(NSArray*)rows
toPasteboard:(NSPasteboard*)pboard
{
NSMutableArray *fileNameList = [NSMutableArray array];
int i;
for(i = 0; i < [rows count]; i++){
id rowDict = [listArray objectAtIndex:[[rows objectAtIndex:i] intValue]];
[fileNameList addObject:[rowDict objectForKey:@"fileName"]];
}
[pboard declareTypes:[NSArray arrayWithObjects:NSFilenamesPboardType,
nil] owner:self];
[pboard setPropertyList:fileNameList forType:NSFilenamesPboardType];
return YES;
}
To make this work, you have to define in the awakeFromNib
that the NSTableView "theList" is draggable for vertical movements
and can drag objects of kind NSFilenamesPboardType
- (void)awakeFromNib
{
[theList registerForDraggedTypes:[NSArray
arrayWithObjects:NSFilenamesPboardType, nil]];
[theList setVerticalMotionCanBeginDrag:YES];
}
This works for sure. I took the code from my application.
Best Regards
--
Lorenzo
email: email@hidden
>
From: Steve Gehrman <email@hidden>
>
Date: Thu, 31 Jul 2003 14:02:30 -0700
>
To: Lorenzo <email@hidden>
>
Subject: Re: Dragging an item to a folder in the Dock
>
>
Have you tried this? It doesn't work for me, that's why I asked the
>
question.
>
>
The Dock receives the drop, but does nothing.
>
>
-steve
>
>
On Thursday, July 31, 2003, at 07:28 AM, Lorenzo wrote:
>
>
> Hi,
>
> if you mean dragging a row (containing a pathNameto a file) from a
>
> NSTableView or from some other object in your Window to the Finder or
>
> to a
>
> folder in the Dock, you have firstly define your pathName object
>
> within a
>
> pasterboard
>
>
>
> [pboard declareTypes:[NSArray arrayWithObjects:NSFilenamesPboardType,
>
> nil]
>
> owner:self];
>
>
>
> Then define a PropertyList of pathNames "fileNameList" as NSArray
>
> (even one only object)
>
> [pboard setPropertyList:fileNameList forType:NSFilenamesPboardType];
>
>
>
> When the Finder receives the drop, it does the rest.
>
>
>
> Best Regards
>
> --
>
> Lorenzo
>
> email: email@hidden
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.