【问题标题】:Key-value observing on UIButton's StateUIButton 状态的键值观察
【发布时间】:2011-11-24 12:49:57
【问题描述】:

UIButton 有一个 state 属性,似乎所有帐户都符合 KVO 标准,并且没有文档表明其他情况。但是,当我向 UIButton 的 state 属性添加观察者时,从未调用过观察者回调。怎么会?

【问题讨论】:

    标签: iphone objective-c ios key-value-observing key-value-coding


    【解决方案1】:

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

    我想这就是为什么对此属性的更改不符合 KVO 的原因。

    但是,您可以简单地注册并观察您需要的值 - highlighted, selected, enabled. 这些属性符合 KVO,当它们发生变化时您将获得观察者回调。

    【讨论】:

    • 谢谢。我目前正在对其他房产进行 KVO。总的来说,我觉得缺乏关于哪些属性符合 KVO 以及哪些属性不符合 Cocoa 的文档;你有同感吗?
    • 我尝试在UIButton 上观察selected,但没有调用我的观察者。切换到highlighted,它工作。使用 Swift 2。
    • 我的按钮就像一个开关,所以最后我决定听highlighted。它被调用了两次(突出显示和取消突出显示),所以如果highlightedtrue,我会忽略它,然后继续检查按钮的selected 状态。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-24
    • 1970-01-01
    • 1970-01-01
    • 2012-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多