我的共享用户默认值控制器绑定有什么问题?

时间:2011-12-11 22:28:50

标签: cocoa data-binding cocoa-bindings

我在我的应用程序的用户默认值中创建了两个词典来表示两个玩家的控件,如下:

Player1 = {
    MoveLeft = 0;
    MoveRight = 2;
    MoveDown = 1;
,
Player2 = {
    MoveLeft = 40;
    MoveRight = 41;
    MoveDown = 37;
}

当我访问[NSUserDefaults.standardUserDefaults valueForKeyPath:@"Player2.MoveLeft"]时,我会NSNumber获得40

我正在尝试使用常规绑定机制将多个文本字段绑定到这些值。当我选择文本字段时,会显示以下内容:

Bind To = Shared User Defaults Controller, Controller Key = value, Model Key Path = Player2.MoveLeft, Value Transformer = SRKeyCodeTransformer

但是,运行应用程序时,文本字段为空。 (即使我删除了值转换器。)如果我尝试绑定到顶级属性(就像我在默认值中定义foo的值为40),它可以工作。

我的绑定有什么问题?如何从嵌套字典中访问元素?

1 个答案:

答案 0 :(得分:2)

我不记得究竟在哪里,但我找到了答案:你无法绑定到用户默认值中的非顶级对象,因为集合是不可变的。