我自定义NSTableView
,并根据具有红色backgroundcolor和图像的视图自定义cellview。
例如:
该表实现方法:
-(void)tableView:(NSTableView *)tableView draggingSession: (NSDraggingSession *)session willBeginAtPoint:(NSPoint)screenPoint forRowIndexes:(NSIndexSet *)rowIndexes
我想自定义拖动项只是没有backgroudcolor的图像。 所以我写了这样的代码:
[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]];
}];
但事实上它并没有进入阻止。
有人知道为什么吗?
答案 0 :(得分:0)
我绘制红色背景颜色的原因是 设计师让我在单元格视图上绘制一个蒙版视图,以指示所选状态。 但是tableView也实现了拖动源,所以当我拖动单元格时,也会拖出蒙版视图。
然后我用Google搜索并发现我们可以使用表格行视图来绘制所选状态。所以问题就解决了。
但我仍然不知道为什么不实施该块。 所以,如果有人知道,请发表答案,非常感谢。