背景:NSTreeController 和 NSOutlineView 的绑定 实现一个多级的列表
拖动一个节点,移动其及其子节点一起移动
//. 设置剪切板拖放标志,exg:一个字符串
-(id <NSPasteboardWriting>)outlineView:(NSOutlineView *)outlineView pasteboardWriterForItem:(id)item {
NSPasteboardItem *pboardItem = [[NSPasteboardItem alloc] init];
[pboardItem setString:@"12312" forType:NSPasteboardTypeString];
return pboardItem;
}
//. 设置列表支持拖放的位置
- (NSDragOperation)outlineView:(NSOutlineView *)outlineView validateDrop:(id < NSDraggingInfo >)info proposedItem:(id)item proposedChildIndex:(NSInteger)index {
// Add code here to validate the drop
NSLog(@"validate Drop");
return NSDragOperationEvery;
}
//. 接收拖放
- (BOOL)outlineView:(NSOutlineView *)outlineView acceptDrop:(id <NSDraggingInfo>)info item:(id)item ch