У меня есть NSTableView, управляемый NSViewController. Они находятся в NSWindow, связанных с NSWindowController и связанных с NSDocument. Он без проблем выполняет NSDragOperationCopy. Я добавил методdraggingSession: sourceOperationMaskForDraggingContext: Not Called
draggingSession:session sourceOperationMaskForDraggingContext:
для того, чтобы начать контролировать движение против копирования против операции удаления следующим образом:
-(NSDragOperation)draggingSession:(NSDraggingSession *)session sourceOperationMaskForDraggingContext:(NSDraggingContext)context
{
switch(context) {
case NSDraggingContextOutsideApplication:
return NSDragOperationCopy | NSDragOperationDelete;
break;
case NSDraggingContextWithinApplication:
default:
return NSDragOperationMove;
break;
}
}
Но он никогда не вызывается, а когда
- (NSDragOperation)tableView:(NSTableView*)tv
validateDrop:(id)info
proposedRow:(NSInteger)row
proposedDropOperation:(NSTableViewDropOperation)op
{
return NSDragOperationMove ;
}
- (BOOL)tableView:(NSTableView*)tv acceptDrop:(id)info row:(NSInteger)row dropOperation:(NSTableViewDropOperation)op
вызываются, po inf O выходы:
SDraggingInfo: draggingSequenceNumber = 0x74000000 draggingDestinationWindow = draggingSourceOperationMask = 0x11 draggingLocation = {+96,49609375, +192,7421875} draggingPasteboard =
draggingSourceOperationMask = 0x11 указывает, как копирование и движение разрешено.
Я не могу контролировать, какие операции разрешены.
Почему не перетаскивание?
Большое спасибо
EDIT:
ли NSTableView установить себя или источник данных в качестве draggingSource при вызове:
dragImage:at:offset:event:pasteboard:source:slideBack