1

私は Objective-C を初めて使用するので、問題に対する答えが見つかりません。テキストフィールドを使用してテキストを入力し、次を使用する簡単なプログラムを作成しました。

SaveFBCover1 = Cover1.stringValue;
DefaultCover1 = [NSUserDefaults standardUserDefaults];
[DefaultCover1 setObject:SaveFBCover1 forKey:@"SaveCover1"];
[DefaultCover1 synchronize];

保存します。その後、これを行います

DefaultCover1 = [NSUserDefaults standardUserDefaults];
loadFBCover1 = [DefaultCover1 objectForKey:@"SaveCover1"];
FBCoverImageText = [NSString stringWithFormat:@"%@", loadFBCover1];

ロードします。しかし、私が望むのは、色やフォントなどを含むリッチ テキストを保存して読み込むことです。

何らかの理由で、正しく保存またはロードできません。誰かが私の間違いを指摘できますか?

4

1 に答える 1

0

SaveFBCover1Cover1.stringValueは からではなくから NSString を取得してNSAttributedStringいます。あなたのコードはその文字列を適切に保存しているように見えます。おそらく、再度ロードすると文字列が返されますが、属性付きの文字列で開始しなかったか、属性を取得しなかったため、属性を取得できません。テキストビューのテキストを個別に保存します。

を使用して、属性付きの文字列を取得できます

SaveFBCover1 = Cover1.attributedStringValue;

ただし、文字列を保存およびロードするには、もう少し作業を行う必要があります (ただし、それほど多くはありません)。NSAttributedStringに直接保存できる型の 1 つではないNSUserDefaultsため、最初のインスタンスにシリアル化する必要がありますNSData。鍵付きアーカイバーを使用すると、これを非常に簡単に行うことができます。Archives and Serializations Programming GuideKeyed Archivesについて読んでください。

于 2013-08-08T17:40:41.403 に答える