保存&使用NSUserDefaults格式化字符串

时间:2016-05-16 15:56:53

标签: ios swift nsuserdefaults

要保存字符串,请使用以下代码:

defaults.setObject(textViews.text, forKey: "userNameKey")

要加载以前保存的字符串,我使用以下代码:

if let name = defaults.stringForKey("userNameKey") {
        textViews.text = name
}

但是,字符串不会保留格式(color)!。是否可以使用NSUserDefaults保存字符串并对其进行格式化,还是需要使用其他方法?

1 个答案:

答案 0 :(得分:1)

找到解决方案。 保存新文本,例如此处

 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!