2

画像のあるパネルがあり、ファイルを「ドラッグ」してフォルダーにコピーできるようにしたい (画像ではなく、画像はファイルのアイコンとしてサーバーに送信されるだけです)。アプリケーションの外部と、ドラッグされているファイルを受け入れる他のアプリケーション (例: Finder) に画像を移動します。これどうやってするの?

NSDraggingSourceプロトコルを実装しましたが、画像をドラッグ可能にする方法がわかりません。現在は の中にありImageView、 は の中にありImageViewCellます。

実装したプロトコルは次のとおりです。

#import "DragNDropView.h"

@implementation 
-(NSDragOperation)draggingSession:(NSDraggingSession *)session
sourceOperationMaskForDraggingContext: (NSDraggingContext) context{
  switch(context){
    case NSDraggingContextOutsideApplication:
      return NSDragOperationCopy;
      break;
    default:
      return NSDragOperationNone;
      break;
  }
}

-(void) draggingSession:(NSDraggingSession *)session willBeginAtPoint:(NSPoint) screenPoint{
   NSPasteboard *pboard = [NSPasteboard pasteboardWithName:NSDragPboard];
   NSPaseBoardItem *contents = [[NSPasteboardItem alloc]
                                inithWithPasteboardPreopertyList:SDKFileName ofType:NSFileContentsPboardType];
   [pboard writeObjects[NSArray arrayWithObjects:contents, nil]];
}

-(void)drawRect:(NSRect)dirtyRect{
  SDKFileName = @"example.example";
  [super drawRect:dirtyRect];
}

@end
4

1 に答える 1

1

メソッドを追加し、- (id)initWithCoder(NSCode *)coderさらに追加しました
- (BOOL)acceptesFirstMouse:(NSEvent *)event { return YES; }

于 2013-01-16T21:04:11.553 に答える