/ / Как да правим плъзгане от NSButton в MacOS Lion - object-c, macos, drag-and-drop

Как да направим плъзгане от NSButton в MacOS Lion - цел-c, макос, плъзгане и пускане

Имам NSButton това, което приема капка, за да добавите изтеглени елементи към NSMutableArray. Как мога да направя плъзгане от NSButton за плъзгане на всички елементи в NSMutableArray?

Отговори:

2 за отговор № 1

Един начин да направите това е да използвате метода NSView,dragImage: at: offset: event: pasteboard: източник: slideBack: за стартиране на плъзгането. В класа си с персонализирани бутони бихте заместили мишката: и извикайте този метод. Написах пример, в който изображението, което "се влачи" е изображението на бутона, а данните, които плъзгам, е само низ "ARRAY". че на вашата дестинация, тя може да тества, за да видите дали това, което е отпаднало е низ "ARRAY" и след това направете каквото искате да направите с този масив, който сте създали с първата си капка. изчезва, когато издърпам бутона.

- (void)mouseDown:(NSEvent *)theEvent {
NSImage *pic = self.image;
NSSize dragOffset = NSMakeSize(0.0, 0.0);
NSPasteboard *pboard = [NSPasteboard pasteboardWithName:NSDragPboard];
[pboard declareTypes:[NSArray arrayWithObject:NSStringPboardType]  owner:self];
[pboard writeObjects:[NSArray arrayWithObject:@"ARRAY"]];
NSPoint btnMiddle = NSMakePoint(self.frame.size.width/2,self.frame.size.height/2);
NSPoint picOrigin = NSMakePoint(btnMiddle.x - pic.size.width/2, btnMiddle.y + pic.size.height/2);
self.image = nil;
[self dragImage:pic at:picOrigin offset:dragOffset event:theEvent pasteboard:pboard source:self slideBack:YES];
}