自定义NSTableView拖动会话但拖动框架坐标不是tableview?

时间:2015-12-07 08:52:16

标签: objective-c macos tableview

-(void)tableView:(NSTableView *)tableView
 draggingSession: (NSDraggingSession *)session
willBeginAtPoint:(NSPoint)screenPoint
   forRowIndexes:(NSIndexSet *)rowIndexes {
  [session enumerateDraggingItemsWithOptions:NSDraggingItemEnumerationConcurrent
                                 forView:tableView
                                 classes:[NSArray arrayWithObject:[NSPasteboardItem class]]
                           searchOptions:nil
                              usingBlock:^(NSDraggingItem *draggingItem, NSInteger index, BOOL *stop) {
                                NSImage *image = [NSImage imageNamed:@"about_bg"];

                                [draggingItem setDraggingFrame:NSMakeRect(0, 0, 100, 100)
                                                      contents:image];
                              }];

}

enter image description here

如图所示,拖动图片的位置不是鼠标点位置。 任何人都知道为什么?谢谢你的帮助~~ ^ _ ^

1 个答案:

答案 0 :(得分:0)

我认为这个问题的原因是我的英语不好,我完全不理解苹果文档。并感谢@Willeke的帮助。 我应该做的是不要改变拖动框架。所以只需将[draggingItem draggingFrame]设置为draggingFrame。(¯▽¯) 我认为这是一个非常愚蠢的问题,哈哈~~