我正在扩展UIButton
通用功能以根据显示的标题更改某些外观属性。
为此,我需要检测并响应“状态”属性的变化。如果用户为不同的状态设置了不同的标题,我会确保正确调整外观。我假设我需要使用某种 KVO,如下所示:
[self addObserver:self
forKeyPath:@"state"
options:NSKeyValueObservingOptionNew
context:nil];
但这似乎不会触发 @"state" 或 @"currentTitle" 的 observeValueForKeyPath:... 方法。我认为这是因为 UIButton 没有为这些属性实现 KVO 模式。
我不想只听点击。这些事件会导致状态变化,但不是唯一的潜在原因。
有谁知道一种方法来监听和响应 UIButton 的状态变化?
谢谢
更新
只是一个说明,因为我在过去几年中学到了一些东西;)。
从那以后,我与一些知道的 Apple 人员进行了交谈,KVO 不适用于 state 属性的原因是UIKit 的NONE保证符合 KVO 的事实。认为这值得在这里重复——如果您尝试监听UIKit 框架类的任何属性,请注意它可能有效但不受官方支持,并且可能会在不同的 iOS 版本上中断。