我定制了一个NSTableView,并根据带有红色背景颜色和图像的视图自定义了单元格视图。
例如:

该表实现了以下方法:
-(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) {
[draggingItem setDraggingFrame:NSMakeRect(0, 0, StickerTableViewWidth, StickerTableViewHeight)
contents:[NSImage imageNamed:imageName]];
}];但事实上,它并没有进入这个街区。
有人知道为什么吗?
发布于 2015-12-04 06:14:48
我绘制红色背景颜色的原因是设计人员要求我在单元格视图上绘制一个掩码视图,以指示所选状态。但是tableView也实现了拖放源,所以当我拖动单元格时,掩码视图也会被拖出。
然后我搜索并发现我们可以使用表行视图来绘制所选状态。所以问题就解决了。
但是我仍然不知道为什么这个块不被实现。因此,如果有人知道,请张贴答案,非常感谢。
https://stackoverflow.com/questions/34014453
复制相似问题