首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSOutlineView拖动图像

NSOutlineView拖动图像
EN

Stack Overflow用户
提问于 2012-10-16 04:10:59
回答 2查看 618关注 0票数 4

我想要更改从基于视图和数据源的NSOutlineView拖动项目时使用的图像,但似乎找不到挂钩。我试着修改过

代码语言:javascript
复制
- (void)dragImage:(NSImage *)anImage at:(NSPoint)viewLocation offset:(NSSize)initialOffset event:(NSEvent *)event pasteboard:(NSPasteboard *)pboard source:(id)sourceObj slideBack:(BOOL)slideFlag

在rowViews中,在tableCellViews中,在NSOutlineView本身的子类中,但都没有用。

谁知道默认图像(显然是从tableCellView的图像和文本字段中提取的)是从哪里来的?

EN

回答 2

Stack Overflow用户

发布于 2012-12-14 01:12:19

事实证明,该图像是从NSTableCellView获得的。因此,钩子是覆盖它的子类中的-(NSArray *)draggingImageComponents。

票数 2
EN

Stack Overflow用户

发布于 2014-03-02 20:52:03

这有点尴尬:

在你的data source中,你可以设置通过参数传递给tableView:draggingSession:willBeginAtPoint:forRowIndexes:NSDraggingSession实例上的图片。

然后,可以在NSDraggingSession实例上使用enumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:方法来更改NSDraggingItems的实际拖动图像

代码语言:javascript
复制
   [session enumerateDraggingItemsWithOptions:NSDraggingItemEnumerationConcurrent
                                      forView:tableView
                                      classes:[NSArray arrayWithObject:[NSPasteboardItem class]]
                                searchOptions:nil
                                   usingBlock:^(NSDraggingItem *draggingItem, NSInteger index, BOOL *stop)
    {
       [draggingItem setDraggingFrame:NSMakeRect(0, 0, myWidth, myHeight)
                             contents:myFunkyDragImage];
    }];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12903228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档