gpt4 book ai didi

objective-c - mouseUp 在 Cocoa 中没有触发?

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

我正在尝试在我的应用程序中实现拖放功能,但遇到了 mouseUp 事件未触发的问题。如果我只需在 View 上单击并释放,它就会很好地触发,但如果我拖动,我的 mouseDragged事件触发,就是这样。

通过尝试不同的方法,我发现问题出在我的 DragImage 调用中,但我现在不知道如何解决它。

这是我的代码:

-(void) mouseDragged:(NSEvent *)theEvent
{
isDragging = YES;

if ([selectedCellRowIndex longValue] >= 0)
{
NSImage *im = [[NSImage alloc]initWithContentsOfFile:@"/Users/UserName/Desktop/drag.png"];
NSSize dragOffset = NSMakeSize(0.0, 0.0);
NSPasteboard *pboard = [NSPasteboard pasteboardWithName:NSDragPboard];

[pboard declareTypes:[NSArray arrayWithObject:NSTIFFPboardType] owner:self];
[pboard setData:[im TIFFRepresentation] forType:NSTIFFPboardType];

[self dragImage:im
at:downPointRelativeToTable
offset:dragOffset
event:theEvent
pasteboard:pboard
source:self
slideBack:YES];
}
}

有谁知道我的问题出在哪里?!谢谢!

最佳答案

在您的代码片段中,您将获取 NSPasteboard 实例,但不会将数据复制到其中。这是必需的,否则您的拖动将无法正确启动 - 这可能就是您永远无法获得 mouseUp: 事件的原因。

dragImage:at:offset:event:pasteboard:source:slideBack: 的文档说明

Before invoking this method, you must place the data to be transferred on pboard. To do this, get the drag pasteboard object (NSDragPboard), declare the types of the data, and then put the data on the pasteboard.

关于objective-c - mouseUp 在 Cocoa 中没有触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15824091/

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