Сохраните и извлеките строку NSAttributed с помощью NSTextAttachment в / из Pasteboard - PullRequest
0 голосов
/ 03 июля 2018

У меня NSAttributedString с NSTextAttachment. Я создал подкласс NSTextAttachment (с реализованными методами кодирования / декодирования), и у него есть свойство attachedView, поэтому я могу поместить любое представление как NSAttachment в приписанную строку. Проблема в том, что я не могу сохранить и получить вложение в / из UIPateboard.

Есть предложения, как это можно сделать?

//Store
NSData *data = [[self.storage attributedSubstringFromRange:self.selectedRange] archivedData];
[[UIPasteboard generalPasteboard] setItems:@[[(id)kUTTypePlainText: attributedString.string],
                                             [(id)kUTTypeData: data]]];

//Retrieve
NSAttributedString *attributedString = [[UIPasteboard generalPasteboard] loadAttributedString];
if (!attributedString) {
    [super paste:sender];
    return;
}

//Extension
@implementation NSAttributedString (Additions)

- (NSData *)archivedData {
    return [NSKeyedArchiver archivedDataWithRootObject:self];
}

- (NSAttributedString *)unarchiveWithData:(NSData *)data {
    return [NSKeyedUnarchiver unarchiveObjectWithData:data];
}

@end
...