Я пытаюсь реализовать функцию перетаскивания & в моем приложении, и я столкнулся с проблемой моего события mouseUp, не стреляющего. Он срабатывает просто отлично, если я просто нажимаю и отпускаю на моем представлении, но если я перетаскиваю, срабатывает событие mouseDragged , и все.mouseUp не стреляет в какао?
Пробуя разные вещи, я выяснил, что проблема в вызове 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];
}
}
Кто-нибудь знает, где моя проблема может быть ?! Спасибо!
У вас есть прямоугольник отслеживания или область отслеживания на вид? У меня было что-то вроде этого некоторое время назад, где моя область отслеживания перемещала другой вид на место, и этот вид был, по сути, погружением перед событиями mouseUp:. –
Кроме того, вы можете использовать [HIMouseTrackingGetParameters', чтобы избежать случайного распознавания кликов в качестве начала перетаскивания] (http://stackoverflow.com/a/1472834/30461). –
@PeterHosey: нет ... У меня нет зон отслеживания. Что касается второго предложения, я попробую ... звучит интересно! Спасибо! –