9

UIButton具有状态属性,该状态属于所有帐户的KVO兼容状态,并且没有其他文档可以指出。但是,当我添加一个观察者到UIButton的状态属性时,观察者回调从未被调用过。怎么来的?UIButton状态下的键值观察

回答

21

如果你看UIControl的文档,状态属性被标记为:synthesized from other flags.

我想这就是为什么改变这个属性不符合志愿。

但是,您可以简单地注册并观察您所需的值 - highlighted, selected, enabled.这些属性符合KVO标准,您将在观察者更改时收到回调。

+4

谢谢。我目前正在KVO上的其他属性。总的来说,我觉得缺乏关于哪些属性符合KVO以及什么不属于Cocoa的文档;你有同样的感觉吗? –

+1

我试着在UIButton上观察'selected',但我的观察者没有被调用。切换到“突出显示”,并且工作。使用Swift 2. –

+0

我的按钮就像一个开关,所以最后我决定听'突出显示'。它被调用两次(突出显示和取消突出显示),所以如果'突出显示'是'true',我会忽略它,然后继续检查按钮的'selected'状态。 –