поместите NSData и расширение файла на монтажный стол

Я долго искал в Интернете ответ на вопрос, который поставил меня в тупик.

У меня есть подкласс NSView, и я хочу, чтобы его можно было перетаскивать. При выпуске на рабочий стол хочу сохранить в виде файла с назначенным мною NSData (а также с присвоенным расширением).

Я думаю, что мне нужно сделать правильный вызов:

[self dragImage:pic at:NSMakePoint(50, 50) offset:NSMakeSize(50, 50) event:theEvent pasteboard:pboard source:self slideBack:NO];

но я искал часы и не нашел ничего, что могло бы мне помочь.


person BIOS-K    schedule 23.03.2012    source источник


Ответы (1)


Пробовали ли вы использовать один из методов перетаскивания файлов на NSView?

- (BOOL)dragFile:(NSString *)filename fromRect:(NSRect)rect slideBack:(BOOL)aFlag event:(NSEvent *)event;
- (BOOL)dragPromisedFilesOfTypes:(NSArray *)typeArray fromRect:(NSRect)rect source:(id)sourceObject slideBack:(BOOL)aFlag event:(NSEvent *)event;
person Kurt Revis    schedule 23.03.2012
comment
Я думаю, что мне нужно: Перетаскивание файловых обещаний - person BIOS-K; 23.03.2012
comment
-(void)mouseDragged:(NSEvent *)theEvent { [self dragPromisedFilesOfTypes:[NSArray arrayWithObject:@pdf] fromRect:[self frame] source:self slideBack:YES event:theEvent]; [super mouseDragged:событие]; } - person BIOS-K; 23.03.2012
comment
- (NSArray *)namesOfPromisedFilesDroppedAtDestination:(NSURL *)destination { NSLog(@destination = %@,destination); NSRect r = [собственные границы] ; NSData *data = [self dataWithPDFInsideRect:r]; NSMutableString *temp = [NSMutableString stringWithCapacity:0]; [temp appendString:[путь назначения]] ; [temp appendString:@/test.pdf] ; // имя файла [данные writeToFile:temp атомарно:YES] ; return [NSArray arrayWithObject:@test] ; } - person BIOS-K; 23.03.2012