Swift - controlTextDidChange 是否适用于 NSTextView?
Swift - Does controlTextDidChange Work With NSTextView?
我有一个文本字段和一个文本视图。 controlTextDidChange 方法响应文本字段更改。但它不响应文本视图的更改。
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")
}
}
}
我 运行 Xcode 7.2.1 Yosemite。我做错了什么吗?
controlTextDidChange:
是 NSControl
class 的一个方法,被 NSTextField
继承,但不被 NSTextView
:
继承
因此,NSTextView 的实例无法接收上述回调。
我认为您应该从 NSTextViewDelegate
协议实施 textDidChange:
:
func textDidChange(notification: NSNotification) {
if notification.object == textView {
print("good")
}
}
我有一个文本字段和一个文本视图。 controlTextDidChange 方法响应文本字段更改。但它不响应文本视图的更改。
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")
}
}
}
我 运行 Xcode 7.2.1 Yosemite。我做错了什么吗?
controlTextDidChange:
是 NSControl
class 的一个方法,被 NSTextField
继承,但不被 NSTextView
:
因此,NSTextView 的实例无法接收上述回调。
我认为您应该从 NSTextViewDelegate
协议实施 textDidChange:
:
func textDidChange(notification: NSNotification) {
if notification.object == textView {
print("good")
}
}