我有一个文本字段和一个textView。 controlTextDidChange方法响应文本字段更改。但它没有回应textview的变化。
class AppDelegate: NSObject,NSApplicationDelegate,NSTextFieldDelegate,NSTextViewDelegate {
func applicationWillFinishLaunching(notification:NSNotification) {
/* delegates */
textField.delegate = self
textView.delegate = self
}
override func controlTextDidChange(notification:NSNotification?) {
if notification?.object as? NSTextField == textField {
print("good")
}
else if notification?.object as? NSTextView == textView {
print("nope")
}
}
}
我在Yosemite下运行Xcode 7.2.1。我做错了吗?
答案 0 :(得分:7)
controlTextDidChange:
是NSControl
类的一种方法,由NSTextField
继承,但不由NSTextView
继承:
因此, NSTextView 的实例无法接收上述回调。
我认为您应该从NSTextViewDelegate
协议实施textDidChange:
:
func textDidChange(notification: NSNotification) {
if notification.object == textView {
print("good")
}
}