I'm using NSOutlineView with view-based rows. I've set it up to allow drag and 
drop of a row. When the drag is initiated, it throws an exception with the 
following stack trace:

#0      0x00007fff8b6d4e4a in objc_exception_throw ()
#1      0x00007fff8d00412d in -[NSObject(NSObject) doesNotRecognizeSelector:] ()
#2      0x00007fff8cf5f322 in ___forwarding___ ()
#3      0x00007fff8cf5eea8 in __forwarding_prep_0___ ()
#4      0x00007fff88c69a1d in -[NSView 
_layerBackedDisplayRectIgnoringOpacity:inContext:isRootView:] ()
#5      0x00007fff88bf0104 in -[NSView displayRectIgnoringOpacity:inContext:] ()
#6      0x00007fff8900fb6f in -[NSTableView 
_drawView:withCellFrameUnion:inContext:] ()
#7      0x00007fff8901127f in __70-[NSTableView 
_dragImageForRowsWithIndexes:tableColumns:event:offset:]_block_invoke_2 ()
#8      0x00007fff86dc62ae in __NSIndexSetEnumerate ()
#9      0x00007fff890111fe in __70-[NSTableView 
_dragImageForRowsWithIndexes:tableColumns:event:offset:]_block_invoke ()
#10     0x00007fff86dc62ae in __NSIndexSetEnumerate ()
#11     0x00007fff89010c90 in -[NSTableView 
_dragImageForRowsWithIndexes:tableColumns:event:offset:] ()
#12     0x00007fff89011c8f in -[NSTableView 
_doImageDragUsingRowsWithIndexes:event:pasteboard:source:slideBack:startRow:] ()
#13     0x00007fff89012c11 in -[NSTableView 
_performClassicDragOfIndexes:hitRow:event:] ()
#14     0x00007fff88b79a99 in -[NSTableView _performDragFromMouseDown:] ()
#15     0x00007fff88b780c7 in -[NSTableView mouseDown:] ()
#16     0x00007fff88c7d0d1 in -[NSOutlineView mouseDown:] ()
#17     0x00007fff88b62a58 in -[NSWindow sendEvent:] ()
#18     0x00007fff88b015d4 in -[NSApplication sendEvent:] ()
#19     0x00007fff88951a19 in -[NSApplication run] ()
#20     0x00007fff8893c7a3 in NSApplicationMain ()

2014-05-22 13:01:47.040 <app redacted>[12101:303] -[<redacted> 
contentsAreFlipped]: unrecognized selector sent to instance 0x102105a00



The exception is an unrecognised selector of -contentsAreFlipped (which is a 
method of CALayer) and the target of the message is my class that is the <item> 
represented by this row of the table, part of my data model. This seems to be 
code that is building the drag image. My datasource's 
-outlineView:writeItems:toPasteboard: has already been called by this time and 
completed fine as far as I can see. I'm not explicitly using CALayers in my 
table implementation anywhere, and layer backing is not set in IB.

This code is a new implementation of an interface that I previously had working 
using cell-based rows, but is now using view-based rows. Otherwise things are 
much the same (except that the old code works and this doesn't). Why would the 
outline view be assuming that my data model object is a CALayer at this point? 
Why would it even be attempting to message the data model?

Anyone else run into this? It's probably my bug but I'm not seeing it, and 
*feels* like a framework bug. But surely drag/drop of view-based outline view 
rows has been tested and works? OS 10.9 and 10.9 SDK.

--Graham



_______________________________________________

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