Re: IKImageBrowserView Dragging outside
Re: IKImageBrowserView Dragging outside
- Subject: Re: IKImageBrowserView Dragging outside
- From: Thomas Goossens <email@hidden>
- Date: Fri, 23 Oct 2009 23:44:34 +0200
On Oct 23, 2009, at 9:15 PM, TFS - Tobias Jordan wrote:
> Thanks for that, Thomas. The Problem I'm having is that the IKImageBrowserView is just representing previews. So it's a file preview and there's a path behind the preview to be copied when dragging out.
> With the standard settings of the view, I'll get the preview image copied to the location instead of the file behind the image. That's why I have to implement everything on my own, I know this sounds confusing. ;-)
ok that makes sense.
> I dunno know what to declare in the pasteboard when it is about NSIndexSets. And what to do next after implementing writeItemsAtIndexes:toPasteboard:…?
> Thanks so much for your help, I really appreciate it.
This is not something specific to the IKImageBrowserView here so the pasteboard programming guide should help: http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/PasteboardGuide106/Introduction/Introduction.html
Typically you will have to do something like this:
- (NSUInteger) imageBrowser:(IKImageBrowserView *) aBrowser writeItemsAtIndexes:(NSIndexSet *) itemIndexes toPasteboard:(NSPasteboard *)pasteboard
{
NSUinteger index;
//instantiate an array to store paths
filesArray = [NSMutableArray array];
//for each index...
for(index = [itemIndexes firstIndex]; index != NSNotFound; index = [itemIndexes indexGreaterThanIndex:index]){
//...get the path you want to add to the pasteboard
id myDatasourceItem = [_myDatasourceArray objectAtIndex:index];
NSString *path = [myDatasourceItem myLargeImageFilePath];
//add it to your array
[filesArray addObject:path];
}
//declare the pasteboard will contain paths
[pasteboard declareTypes:[NSArray arrayWithObjects:NSFilenamesPboardType,nil] owner:self];
//set the paths
[pasteboard setPropertyList:filesArray forType:NSFilenamesPboardType];
//return the number of items added to the pasteboard
return [filesArray count];
}
-- Thomas
> On Oct 23, 2009, at 6:49 PM, Thomas Goossens wrote:
>
>> Hi Jordan,
>>
>> imageBrowser:writeItemsAtIndexes:toPasteboard: is indeed the way to go.
>>
>> Implement this method in your datasource and just fill the pasteboard with the info you want (Images, paths, urls, data...) for the indexes passed in arguments.
>> Also if you feed the imageBrowser with paths or urls (IKImageBrowserPathRepresentationType, IKImageBrowserNSURLRepresentationType...) , you don't have to do anything, the pasteboard is filled automatically (i.e you don't need to implement imageBrowser:writeItemsAtIndexes:toPasteboard:).
>>
>> -- Thomas
>>
>>
>> On Oct 22, 2009, at 2:30 PM, TFS - Tobias Jordan wrote:
>>
>>> Hi all,
>>>
>>> I've been wondering on how to implement dragging out of the view in the IKImageBrowserView. I am pretty sure this is where I have to start: -imageBrowser:writeItemsAtIndexes:toPasteboard: but I don't have a clue what to do next. It's not a real File Promise, I just need the folder (in most cases the Desktop) dragged to and the indexes that have been dragged.
>>> The class seems to be quite different to the NSTableView in which I am using '-tableView:writeRowsWithIndexes:toPasteboard' and '-tableView:namesOfPromisedFilesDroppedAtDestination:forDraggedRowsWithIndexes:'.
>>>
>>> What's the method I am missing?
>>>
>>> Best regards & thanks.
>>> Tobias Jordan.
>>> _______________________________________________
>>>
>>> Cocoa-dev mailing list (email@hidden)
>>>
>>> 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:
>>>
>>> This email sent to email@hidden
>>
>
> _______________________________________________
>
> Cocoa-dev mailing list (email@hidden)
>
> 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:
>
> This email sent to email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden