How to change the image used for a drag in a NSTableView

I want to let users change ordering of items in a table view on a colum-by-column basis, but the image generated by the default drag operation represents the whole line. How to make it represents only the column's item being dragged ?
You need to subclass the NSTableView and then overwrite - (void)dragImage:(NSImage *)anImage at:(NSPoint)imageLoc offset:(NSSize)mouseOffset event:(NSEvent *)theEvent pasteboard:(NSPasteboard *)pboard source:(id)sourceObject slideBack:(BOOL)slideBack
- (void)dragImage:(NSImage *)anImage at:(NSPoint)imageLoc offset:(NSSize)mouseOffset event:(NSEvent *)theEvent
pasteboard:(NSPasteboard *)pboard source:(id)sourceObject slideBack:(BOOL)slideBack
{
int rowIndex = [self rowAtPoint:imageLoc] ;
NSTableColumn *aColumn = [[self tableColumns] objectAtIndex:[self columnWithIdentifier:@"destination"]] ;
NSSize aSize = [anImage size] ;
NSPoint aPoint = NSMakePoint(0.0, 0.0) ;
NSRect aRect = NSMakeRect(0.0,0.0,aSize.width - [aColumn width],aSize.height) ;

[anImage lockFocus] ;
[anImage compositeToPoint:aPoint fromRect:aRect operation:NSCompositeClear];
[anImage unlockFocus];

[super dragImage:anImage at:imageLoc offset:mouseOffset event:theEvent pasteboard:pboard source:sourceObject slideBack:slideBack ] ;
}
Here we have supposed there is only one column - the latest one (named "destination") at the right of the table - to be excluded from the drag operation. Of course, you should adapt the image size calculation and the parameters of compositeToPoint to your situation...