为了保存字符串,我使用以下代码:
defaults.setObject(textViews.text, forKey: "userNameKey")
要加载以前保存的字符串,我使用以下代码:
if let name = defaults.stringForKey("userNameKey") {
textViews.text = name
}
但是,该字符串不保留格式(color)!
。是否可以使用 NSUserDefaults 保存字符串并对其进行格式化,还是我需要使用其他方法?
最佳答案
已找到解决方案。 例如在此处保存新文本
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
let data = NSKeyedArchiver.archivedDataWithRootObject(textView.attributedText)
NSUserDefaults.standardUserDefaults().setObject(data, forKey: "sawedString")
textView.resignFirstResponder()
}
打开时上传保存的文本
override func viewDidLoad() {
super.viewDidLoad()
if let myStringData = NSUserDefaults.standardUserDefaults().objectForKey("sawedString") as? NSData {
let savedString = NSKeyedUnarchiver.unarchiveObjectWithData(myStringData) as? NSAttributedString
textView.attributedText = savedString
}
}
使用 NSAttributedString 而不是 NSMutableAttributedString!
关于ios - 使用 NSUserDefaults 保存和格式化字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37258155/