为什么controlTextDidChange(_ obj:Notification)对标签不起作用?我希望在标签的stringValue更改[macOS]
时调用一个函数答案 0 :(得分:2)
controlTextDidChange
(以及controlTextDidBeginEditing
和controlTextDidEndEditing
)是报告用户对可编辑文本字段发起的更改的委托方法。标签不可编辑,因此永远不会发送这些消息。
如果要通知程序性标签更改,我建议使用绑定。 (我很确定更改标签值会触发值更改通知。我从未用过这种方式,因此您必须进行验证。)
将控件的文本值绑定到对象的string属性可能会更容易(并且我经常这样做)。然后,您可以通过更改该属性来设置标签。需要将此更改通知的其他代码可以观察该属性,或将更新逻辑包装在didSet
属性观察器中。