I have one text field and one textView. The controlTextDidChange method responds to a text field change. But it doesn't respond to a textview change.
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")
}
}
}
I'm running Xcode 7.2.1 under Yosemite. Am I doing anything wrong?
controlTextDidChange:
is a method of NSControl
class which is inherited by NSTextField
, but not by NSTextView
:
Because of that, instances of NSTextView can't receive the above callback.
I think you should implement textDidChange:
from NSTextViewDelegate
protocol instead:
func textDidChange(notification: NSNotification) {
if notification.object == textView {
print("good")
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With