У меня 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