gpt4 book ai didi

macos - 如何在拖动过程中更改拖放图像?

转载 作者:行者123 更新时间:2023-12-03 16:06:51 26 4
gpt4 key购买 nike

所以我想将一个对象从一个源拖动到多个潜在目的地。当物体位于每个目的地上方时,我希望它“变形”成不同的图像。从 NSDragSource 的角度来看,有没有一种简单的方法可以做到这一点?

最佳答案

您可以通过在拖动目标的处理程序方法中使用 NSDraggingInfoenumerateDraggingItemsWithOptions: 方法来实现此目的(即 - 您的 NSDraggingDestination 协议(protocol)的实现) .

例如:

- (NSDragOperation)draggingUpdated:(id < NSDraggingInfo >)sender
{
NSImage* newDragImage = <take it from wherever>;
[sender enumerateDraggingItemsWithOptions:0
forView:sender.draggingSource
classes:[NSArray arrayWithObject:[NSPasteboardItem class]]
searchOptions:nil
usingBlock:^(NSDraggingItem *draggingItem, NSInteger idx, BOOL *stop) {
NSRect theFrame = draggingItem.draggingFrame;
theFrame.size = newDragImage.size;
[draggingItem setDraggingFrame:theFrame contents:newDragImage];
*stop = NO;
}];
}

关于macos - 如何在拖动过程中更改拖放图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1546943/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com