为什么 controlTextDidChange(_ obj: Notification) 对标签不起作用? [苹果系统]

Why does controlTextDidChange(_ obj: Notification) not work for label ? [macOS]

为什么 controlTextDidChange(_ obj: Notification) 对标签不起作用?。我希望在标签的 stringValue 更改时调用一个函数 [macOS]

controlTextDidChange(以及 controlTextDidBeginEditingcontrolTextDidEndEditing)是报告 user 对可编辑文本字段发起的更改的委托方法。标签不可编辑,因此永远不会发送这些消息。

如果您想要程序化标签更改的通知,我建议您使用绑定。 (我很确定更改标签值会触发值更改通知。我从未以这种方式使用它,因此您必须验证这一点。)

简单地将控件的文本值绑定到对象的字符串 属性 可能会更容易(我经常这样做)。然后,您可以通过更改 属性 来设置标签。需要通知此更改的其他代码可以观察 属性,或者将更新逻辑包装在 didSet 属性 观察者中。