大佬教程收集整理的这篇文章主要介绍了ios – 存储UITextView字符串/文本数据,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我希望它记住当用户编辑文本而不是那个…所以我使用了!=该比较器用于比较swift中的字符串.我不确定它是否会得到应用商店评论的批准,因为他们推荐使用isEqualToString().
无论如何,下面的代码是针对该视图的…如果用户从占位符更改了文本,则不记得输入的文本.它识别它已被更改,但当您返回到视图时,它再次显示默认占位符…帮助?
import Foundation import UIKit class messageNotesViewController: UIViewController,UITextViewDelegate { @IBOutlet weak var messageNotes: UITextView! @IBOutlet var swiped: UISwipeGestureRecognizer! var placeholder = "Take your notes here (Swipe Down to dismiss the keyboard): " override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(true) messageNotes.delegate = self messageNotes.text = placeholder } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } @IBACtion func openIn(_ sender: AnyObject) { print("Share with Social Media or Copy to Notes") //let textToShare = messageNotes.attributedText // let objectsToShare = [textToShare] //let activityVC = UIActivityViewController(activityItems: objectsToShare,applicationActivities: nil) //activityVC.popoverPresentationController?.sourceView = (sender as! UIView) //self.present(activityVC,animated: true,completion: nil) if let notes = messageNotes.text { let avc = UIActivityViewController.init(activityItems: [notes],applicationActivities: nil) avc.popoverPresentationController?.barButtonItem = sender as? UIBarButtonItem self.present(avc,animated: truE) { print("completed") } } } func touchesBegan(_ messageNotes: UITextField) -> Bool { self.view.endEdiTing(true) return false } //let defaults = NSUserDefaults. override func viewWillDisappear(_ animated: Bool) { //PrepareForSegue didn't quite work print("View Will Disappear") //TesTing if the user has entered any text if so preserve entered text if messageNotes.text != placeholder { //viewDidLoad(typedText) print("the user altered the text in some way. \n") placeholder = messageNotes.text // assigns new placeholder } else{ // do something else - if needed } } } //Sub class decleration for ActivityForNotesViewController as called in openIn class ActivityForNotesViewController: UIActivityViewController { internal func _shouldExcludeActivityType(_ activity: UIActivity) -> Bool { let activityTypesToExclude = [ ] if let actType = activity.activityType() { if activityTypesToExclude.contains(actTypE) { return true } else if super.excludedActivityTypes != nil { return super.excludedActivityTypes!.contains(actTypE) } } return false } }
尝试实现以下答案时存在一些编译错误.
在viewWillAppear函数中,编译器说“不能调用非函数类型的值’UserDefaults’” – 如果让带有UserDefaults.standardUserDefaults()的newText行用红色下划线,编译器会突出显示该行.
override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(true) messageNotes.delegate = self messageNotes.text = placeholder if let newText = UserDefaults.standardUserDefaults().objectForKey("textKey"){ if newText.length > 0 { messageNotes.text = newText } } }
在viewWillDisappear函数中找到相同的编译错误:
override func viewWillDisappear(_ animated: Bool) { //Prepare for segue didn't quite work for what I need print("View Will Disappear") //TesTing if the user has entered any text if so preserve entered text if messageNotes.text != placeholder { //viewDidLoad(typedText) print("the user altered the text in some way. \n") UserDefaults.standardUserDefaults().setObject(messageNotes.text!,forKey:"textKey") // assigns new placeholder } else{ // do something else - if needed } } }
我将在viewWillDisappear中替换它:
placeholder = messageNotes.text
同
UserDefaults.standardUserDefaults().set(messageNotes.text!,forKey:"textKey")
在viewWillAppear中我添加:
messageNotes.text = placeholder if let newText = UserDefaults.standardUserDefaults().object("textKey"){ if newText.length > 0 { messageNotes.text = newText as! String } }
以上是大佬教程为你收集整理的ios – 存储UITextView字符串/文本数据全部内容,希望文章能够帮你解决ios – 存储UITextView字符串/文本数据所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。