NSView#dragImage:(NSImage *)anImage at:(NSPoint)viewLocation offset:(NSSize)initialOffset event:(NSEvent *)event pasteboard:(NSPasteboard *)pboard source:(id)sourceObj slideBack:(BOOL)slideFlag
を使って同一ウィンドウと他アプリ両方をサポートする D&Dを検証中。
その課程で分かったことをメモ。
下記メソッドを実装しておくと、ドラッグ中に呼び出される。
NSObject(NSDraggingSource)#draggingSourceOperationMaskForLocal:
このメソッドで渡ってくる (BOOL)flag はローカルかどうか(?)を表すのではなく、NSObject(NSDraggingDestination)のメソッドが実装されているかどうかによって YES/NOが返されることが分かった。これらのメソッドが実装されている、すなわちD&Dを受け付ける場合は flag==YES、となり実装していない場合は flag==NO が返る。