Superview as drag destination if subview rejects it

drag-and-drop, macos, nsview, objective-c, osx-lion

Solution

If I get this right you should call:

[self.superview yourmethod];

in the childs function.

If the child inherited from the parent you can call:

[super yourmethod];

Problem

Consider a view (`parent`) with a subview (`child`). Both have registered for the dragged type `NSFilenamesPboardType`. `parent` is only interested in image files and `child` in audio files. If they detect a file of the corresponding type in `draggingEntered:` they return `NSDragOperationCopy`. If not, they return `NSDragOperationNone`. `child` overlaps `parent` and when a drag reaches `child`, `parent` receives a `draggingExited:` message, no matter if `child` is interested in the drag or not. How can I make `parent` receive the drag if `child` does not want it?

Original source