我不断收到'源文件中的编辑器占位符'错误。我正在尝试访问我的NSTextView文本,但我似乎没有做对。
@IBAction func cancelButton(sender: AnyObject) {
dismissViewController(self)
}
@IBAction func saveButtonHandler(sender: AnyObject) {
let Name: String! = nameField.stringValue;
let Time: String! = timeField.stringValue;
let Yum: String! = yumField.stringValue;
let Instruct = (instructionField.textStorage as NSAttributedString!).string;
let recipe = Recipe(name: Name, time: Time, yum: Yum, type: foodType, instructions: Instruct)
dismissViewController(self)
}
问题来自
行 let Instruct = (instructionField.textStorage as NSAttributedString!).string;
我做错了什么?
答案 0 :(得分:0)
首先,如果您使用的是Storyboard或xib ,则无法将出口设为NSTextView
。解决方法是为包含NSScrollView
的目标文本视图创建一个Outlet。因此,请确保您保留对instructionField
的引用,并且它包含滚动视图:
@IBOutlet weak var scrollView : NSScrollView!
var instructionField : NSTextView {
get {
return scrollView.contentView.documentView as! NSTextView
}
}
接下来,您不会使用textStorage
访问文本视图中包含的文本。获取instructionField
中包含的文本的正确实现如下:
instructionField.string
类型String?
。
现在,如果你想从NSAttributedString
获得instructionField
,你可以这样做,以避免强行打开一个可选项:
guard let str = instructionField.string else { /* else */ }
guard let attrStr = str as? NSAttributedString else { /* else */ }
<强>最后强>
问题行的最终修复可能如下所示:
guard let Instruct = instructionField.string else { /* else */ }