ドラッグされたアイテムをNSMutableArrayに追加するためにドロップを受け入れるNSButtonがあります。NSButton からドラッグして、NSMutableArray のすべてのアイテムをドラッグするにはどうすればよいですか?
質問する
586 次
1 に答える
2
これを行う 1 つの方法は、NSView メソッドの dragImage:at:offset:event:pasteboard:source:slideBack: を使用してドラッグを開始することです。カスタム ボタン クラスでは、mouseDown: をオーバーライドして、そのメソッドを呼び出します。ドラッグされる画像がボタンの画像であり、ドラッグしているデータが単なる文字列「ARRAY」である例を書きました。ソース側から行う必要があるのはそれだけです。それを宛先にドロップすると、ドロップされたのが文字列「ARRAY」であるかどうかをテストし、作成した配列でやりたいことを何でも実行できます。あなたの最初の一滴で。ボタンで NSMultipleDocuments 画像を使用し、ボタンからドラッグすると画像が消えるようにしました。
- (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];
}
于 2012-05-07T15:31:22.347 に答える