attributedTextでの変更点をNSUserDefaultで保存したい。
UITextViewをattributedTextで部分的に色付けが可能なメモ帳を作成しているのですが、
attributedTextで加えた変更をUserDefaultに保存したいのですが、ご教授いただけると助かります
-(void)redChengeButton:(id) sender{
NSLog(@"ボタンが押されました");
NSRange selectedRange = self->tv.selectedRange;
// 1文字以上を選択していたら
if (selectedRange.length > 0) {
NSLog(@"called if文");
// attributedStringを取得して、Mutableにコピー。
NSMutableAttributedString *theText = [tv.attributedText mutableCopy];
// 選択部分だけ文字色を赤に変える。
[theText addAttribute:NSForegroundColorAttributeName value: UIColor.redColor range:selectedRange ];
NSLog(@"my range is %@", NSStringFromRange(selectedRange));
// 変更を加えたattributedStringを戻す。
tv.attributedText = theText;
UIFont *font = self->tv.font; // フォントを取得
self->tv.typingAttributes = @{NSForegroundColorAttributeName: UIColor.blackColor,
NSFontAttributeName: font};
}
}
//これで保存しようとするとエラー
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
[ud setValue:tv.attributedText forKey:@"tv"];
//これだと色の変更が保存されない
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
[ud setValue:tv.text forKey:@"tv"];