メモアプリを作っています。textviewに書かれている文字を選択して色を変えるところまではできたのですが、文字の色を変えて保存して、もう一度メモを開いてみると、文字の色はデフォルトの黒色に戻ってしまいます。文字の色を変更した瞬間にレルムのテキストが保持されている部分に向けて、現在のtextview.textを挿入してるのですがダメです。おそらく、文字列でレルムに保存しているため、装飾された文字列は認識できないようです。何か良い案はないでしょうか。
文字を変えた状態を変数にとっておいて永続化して、viewが描画されるたびにその文字の色を、テキストの文字に向けて実行して色を変えたりするのも考えてみたのですが、あまりいい方法とは思えませんし、そうなると、他のメモのページを読み込んだとき、全てのtextview.textに対して装飾が適応されてしまうので、それぞれのメモに対してユニークなテキストの状態を保持させて置いて、判別しなければいけないし、メモは減ったり増えたりするので、それように処理も書かなければ行けないに、実装がやたら長くなりそうです。
swift
1//文字の色を変更しました 2bodyTextView.attributedText = attribute 3 4 5 6//変数にbodyTextViewの状態を保存 7var test = bodyTextView.attributedText = attribute 8 9 try! realm.write { 10 //stringに変換してrealmに書き込み 11 self.diary.body = String(describing:test) 12 }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。