OSX Swift: NSTextView 源文件中的编辑器占位符错误
OSX Swift: Editor placeholder in sourcefile error on NSTextView
我一直收到 'Editor placeholder in sourcefile' 错误。我正在尝试访问我的 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;
我做错了什么?
首先,如果您使用 Storyboards 或 xibs,您不能有 NSTextView
的 Outlet。解决方法是为包含 NSScrollView
的目标文本视图创建一个 Outlet。因此,请确保您保留对 instructionField
的引用,并且它包含滚动视图:
@IBOutlet weak var scrollView : NSScrollView!
var instructionField : NSTextView {
get {
return scrollView.contentView.documentView as! NSTextView
}
}
接下来,您不会使用 textStorage
访问包含在文本视图中的文本。获取instructionField
中包含的文本的正确实现如下:
instructionField.string
属于 String?
.
类型
现在,如果你想从 instructionField
得到一个 NSAttributedString
,你可以这样做以避免强行解包一个可选的:
guard let str = instructionField.string else { /* else */ }
guard let attrStr = str as? NSAttributedString else { /* else */ }
终于
问题行的最终修复可能如下所示:
guard let Instruct = instructionField.string else { /* else */ }
我一直收到 'Editor placeholder in sourcefile' 错误。我正在尝试访问我的 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;
我做错了什么?
首先,如果您使用 Storyboards 或 xibs,您不能有 NSTextView
的 Outlet。解决方法是为包含 NSScrollView
的目标文本视图创建一个 Outlet。因此,请确保您保留对 instructionField
的引用,并且它包含滚动视图:
@IBOutlet weak var scrollView : NSScrollView!
var instructionField : NSTextView {
get {
return scrollView.contentView.documentView as! NSTextView
}
}
接下来,您不会使用 textStorage
访问包含在文本视图中的文本。获取instructionField
中包含的文本的正确实现如下:
instructionField.string
属于 String?
.
现在,如果你想从 instructionField
得到一个 NSAttributedString
,你可以这样做以避免强行解包一个可选的:
guard let str = instructionField.string else { /* else */ }
guard let attrStr = str as? NSAttributedString else { /* else */ }
终于
问题行的最终修复可能如下所示:
guard let Instruct = instructionField.string else { /* else */ }