Swift NSTextView textDidChange事件
我正在做类似的事情:Swift NSTextView textDidChange事件,swift,Swift,我正在做类似的事情: @IBOutlet var textView: NSTextView! override func viewDidLoad() { super.viewDidLoad() textView.delegate = self } func textDidChange(notification: NSNotification) { } 我确实在一开始就添加了“NSTextViewDelegate” 如果“textView”中的文本发生更改,我想设置标签的
@IBOutlet var textView: NSTextView!
override func viewDidLoad() {
super.viewDidLoad()
textView.delegate = self
}
func textDidChange(notification: NSNotification) {
}
我确实在一开始就添加了“NSTextViewDelegate”
如果“textView”中的文本发生更改,我想设置标签的字符串值
问题是,我的程序将在没有任何错误消息的情况下崩溃(断点位于“fun textDidChange()……”)。即使func textdichange为空,它也会崩溃
我做错什么了吗
谢谢请参见以下答案:
简而言之,使用controlTextDidChange:
。使用这个,Swift 3
class ViewController: NSViewController, NSTextViewDelegate {
@IBOutlet var textView: NSTextView!
override func viewDidLoad() {
super.viewDidLoad()
textView.delegate = self
// NSTextViewDelegate conforms to NSTextDelegate
func textDidChange(_ notification: Notification) {
guard let textView = notification.object as? NSTextView else { return }
print(textView.string)
}
}
记得吗
textDidChange(\uu通知:通知)
- Swift 3更喜欢
而不是Notification
NSNotification
- 设置代理
textView.delegate=self
ControlTextDidChange
仅适用于NSTextField
。问题是关于NSTextView