【问题标题】:How Do I Bind a UIButton Property to Another Property?如何将 UIButton 属性绑定到另一个属性?
【发布时间】:2011-02-02 07:00:54
【问题描述】:

UIButton 最终继承自 NSObject,NSObject 实现了 NSKeyValueBindingCreation 协议。那么为什么我不能将 UIButton 的属性绑定到另一个类的属性呢?

[myUIButton bind:@"enabled"
        toObject:myOtherObject
     withKeyPath:@"otherObjectBOOLProperty"
         options:nil];

这会导致警告

'UIButton' 可能不响应'-bind:toObject:withKeyPath:options:'

我要做的是将 UIButton 的启用状态绑定到 myOtherObject.otherObjectBOOLProperty。

【问题讨论】:

    标签: objective-c ios binding uibutton


    【解决方案1】:

    不是这样,iOS 的NSObject 确实符合NSKeyValueBindingCreation 协议。

    在你的情况下,我会直接使用Key-Value Observing

    请参阅NSObjectAdopted Protocols

    【讨论】:

    • 呃,是的,谢谢。这就是我同时搜索 Mac OS 和 iOS 文档的结果。所以我想正确的方法是直接通过KVO?
    • @cygnl7 我还要注意 NSKeyValueBindingCreation 是一个非正式协议,因此它也不会出现在 OS X 的 NSObject“采用的协议”部分。
    • NSKeyValueBindingCreation 协议的文档状态,“这个非正式的协议是由 NSObject 实现的”,这就是我的意思。我什至没有注意到我正在查看 Mac OS 文档...
    【解决方案2】:

    NSObject 只符合 NSObject 协议,但你可以使用 KVO 来绑定它:

    Key-Value Observing Programming guide,特读了如何注册一个待观察的属性以及如何接收通知;)

    【讨论】:

      猜你喜欢
      • 2010-11-14
      • 2018-04-01
      • 1970-01-01
      • 2012-01-04
      • 1970-01-01
      • 2012-03-24
      • 1970-01-01
      • 2020-06-22
      • 1970-01-01
      相关资源
      最近更新 更多