2013-06-02 28 views
1

如何让应用程序用户设置字体,大小,颜色和对齐方式通过自定义设置的应用程序?我想知道是否可以将UIFont保存到NSUserDefaults。我怎样才能解决这个问题?如何通过NSUserDefaults保存textview的字体,大小,颜色和对齐方式?

+1

参见[这个答案](http://stackoverflow.com/questions/1275662/saving-uicolor-to-and-loading-from-nsuserdefaults)为'UIColor'。对于'UIFont'现在(因为它不采用'NSCoding'协议,你可以只保持与字体名字符串或字典,需要的参数,并将其传递给将返回基于'UIFont'的方法。这些检索时从默认 – Alladinian

+0

你有看着http://www.cocoacontrols.com有吨,让用户选择字体颜色和改变字体的文本或大小 –

+0

样本项目是有一个多方位的例子HTTPS:/ /github.com/chrismiles/CMTextStylePicker,但我需要通过NSUserDefaults的 – Astakhoff

回答

1

您可以创建一个NSDictionary控股:

字体?

它的PostScript名称。

大小?

NSNumber

颜色?

NSData(见下文)

对齐?

NSNumber


NSUserDefaults可以节省NSData。连载:

NSData * data = [NSKeyedArchiver archivedDataWithRootObject:color]; 
[[NSUserDefaults sharedUserDefaults] setObject:data forKey:MONDefaultsKey]; 

然后使用NSKeyedUnarchiver反序列化NSData表示。

如果存在关联字符串,也可以考虑将其保存为序列号NSAttributedString - 但在大多数情况下,这是NSUserDefaults滥用。

+1

保存谢谢贾斯汀,我会现在就来试试... – Astakhoff

相关问题