【发布时间】:2012-06-22 12:00:42
【问题描述】:
是否可以将控件绑定到存储在用户默认值中的数组的集合属性?
我试图(在 Xcode 4.3 的界面生成器中)将最大值绑定到数组计数,如下所示:
最大值(共享用户默认控制器.values.MYArrayName.@count)
绑定到:共享用户默认控制器
控制器键: values
模型键路径: MYArrayName.@count
不幸的是,这根本没有效果(甚至没有任何错误)。
我可以将 Max Value 绑定到视图控制器中的 ivar,然后将其绑定到用户默认值。 例如
NSUInteger maxVal
...
NSUserDefaults* stdUD=[NSUserDefaults standardUserDefaults];
[self bind:@"maxVal" toObject:stdUD withKeyPath:@"MYArrayName.@count" options:nil];
然后:
最大值(文件的所有者.maxVal)
绑定到:文件所有者
控制器密钥:
模型密钥路径: maxVal
但我希望不用额外的步骤就可以做到这一点
【问题讨论】:
-
在程序化版本中,您省略了键路径中的“值”。也许这是部分原因?
-
我之前试过删除它,但这是必要的。但是您的评论让我意识到在 XIB 中我绑定到共享用户默认值 controller 但在代码中它是标准用户默认值对象。
-
值的文档说“返回一个用于访问用户默认属性的键值编码兼容对象”,以及“此属性可使用键观察-value 观察”,所以我认为它会起作用。显然我还缺少其他东西。
-
好吧,我只是想知道为什么您的程序示例在您遗漏了“值”的情况下仍然有效
标签: xcode cocoa cocoa-bindings