将NSTokenField绑定到数组控制器

时间:2011-06-07 19:06:46

标签: objective-c cocoa delegates nsarray nstokenfield

我有一个数组控制器和一个用于数据输入的令牌字段 我找不到使用令牌字段将标记化文本绑定到数组控制器的方法。

问题是当我使用令牌字段委托它返回NSArray而不是我的实体属性NSString格式时,如果我使用此令牌字段运行我的应用程序,我有一个错误这向我显示了不兼容的数据模式(属性接受NSString而不是NSArray)。

实际上,我可以处理令牌字段以显示令牌参数但我无法处理令牌字段绑定到数据数组中!

我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:1)

我知道这已经过时了,但我相信我有一个答案,并希望通过绑定令牌字段"" value"没有记录好。事实上,Apple文档具有误导性。

如果你想要的是一个存储在核心数据中的字符串数组,而不处理representedObject或令牌字段委托,你实际上可以在XIB和你的xcdatamodel中做所有事情。

将核心数据实体的NSString属性切换为可绑定到令牌字段的属性的第一步。您需要使属性成为可转换类型。称之为tokenStringArray。您已完成数据模型。 (并且访问此属性的任何代码现在应该期望一个字符串数组。)

令牌字段的值绑定希望连接到可以使用控制器密钥传递单个实体的控制器,并且该单个实体具有提供字符串数组的模型键路径。因此,如果您的阵列控制器选择单个实体,则控制器密钥为selection,模型密钥路径为tokenStringArray。选择"持续更新价值"或保存可能不会立即持续。

那就是它。将可转换的tokenStringArray属性绑定到令牌字段的值后,用户对令牌字段的更改将被保留。

[对于它的价值,我个人有一个对象控制器绑定到一个实体。要将令牌字段绑定到核心数据属性,似乎某种控制器必须介于中间,因此对我来说,它是对象控制器。如果您有一个表格,用户对实体的选择应填充令牌字段,那么您将使用阵列控制器。令牌字段无法编辑阵列控制器arrangedObjects - 它只能从单个对象中获取并传送数组。]