Как сделать выбранное изображение в NSTextView?
Я работаю над приложением, которое выполняет некоторые математические вычисления и отправляет результаты (включая тексты и графики) в NSTextView.
Этот код прекрасно работает при выводе, но это проблема: я хочу, чтобы пользователь мог выбрать /copy-pate и перетащить полученные изображения в другие текстовые редакторы (например, Pages или Text Edit).
когда пользователь перетаскивает изображение из моего текстового представления, оно перетаскивается, но ничего не вставляется в место назначения:
(void) drawRect: (NSRect) dirtyRect {
[super drawRect: dirtyRect];
NSBezierPath * aPath =[NSBezierPath bezierPath];
NSImage * anImage =[[NSImage alloc] initWithSize: NSMakeSize (200.0, 200.0)];
[anImage lockFocus];
// некоторые рисунки:
NSColor* blue= [NSColor blueColor]; [blue setStroke]; aPath=[NSBezierPath bezierPath]; [aPath setLineWidth:20]; [aPath moveToPoint:NSMakePoint(20.0, 20.0)]; [aPath lineToPoint:NSMakePoint(100.0, 100.0)]; [aPath stroke];
[anImage unlockFocus];
//re-capture and change it to a bitmap
Размер NSSize =[размер изображения];
[anImage lockFocus];
NSBitmapImageRep* rep = [[NSBitmapImageRep alloc] initWithFocusedViewRect: NSMakeRect(0,0,size.width,size.height)];
[anImage unlockFocus];
NSData* jpgData= [rep representationUsingType: NSJPEGFileType properties:nil ];
NSImage * newImage =[[NSImage alloc] initWithData: jpgData];
// добавляем приписанную строку только один раз. BOOL isDrownYet в шапке
if (! isDrownYet) {
NSTextAttachmentCell *attachmentCell1 = [[NSTextAttachmentCell alloc] initImageCell:newImage]; NSTextAttachment *attachment1 = [[NSTextAttachment alloc] init]; [attachment1 setAttachmentCell: attachmentCell1 ]; NSMutableAttributedString *attributedString1 = ( NSMutableAttributedString*)[ NSMutableAttributedString
attributetedStringWithAttachment: attachment1];
[self.textStorage appendAttributedString:attributedString1]; isDrownYet=YES;
}}