我有一个带有NSTextview的小项目和一个捕获文本更改的委托,如下所示。 EditViewHandler对象在全局时工作正常但在文本添加到视图时崩溃(如果它是viewDidLoad()的本地文件)。所以这显然是错误的做法,但这样做的正确方法是什么:
@IBOutlet var EditPaneOutlet: NSTextView!
override func viewDidLoad() {
super.viewDidLoad()
let e = EditViewHandler( EditPaneOutlet: EditPaneOutlet )
}
class EditViewHandler : NSObject, NSTextViewDelegate {
var EditPaneOutlet: NSTextView! = nil
init( EditPaneOutlet: NSTextView ) {
super.init()
self.EditPaneOutlet = EditPaneOutlet
self.EditPaneOutlet!.delegate = self
}
func textDidChange(_ notification: Notification) {
print( "text changed")
}
}