2010-07-22 69 views
1

我想了解可可的绑定,但我发现,我真的无法理解的问题。绑定同桌两个不同的NSArrayController的两列给出了奇怪的结果

我得在你有两列的表一个非常简单的应用程序,我想这两个列绑定到对象myController的有文字字符串对象的两个NSArray的。

所以我创建了两个NSArrayController的和结合的每种在所述myController的两个阵列中的一个。 然后,我将表列绑定到每个NSArray,使用作为模型关键路径:描述,作为控制器键:arrangeObjects,以及作为类名:NSString。

结果确实是奇怪:在第二列中一切正常,但在第一次我只拿到了一个“(”和
第一列的每一个值,即使我解除绑定第二列陌生的。首先开始工作。

我试图创建两种不同的表和它们的列绑定到相应的NSArrayController的,然后它的作品。

所以我的印象是,在同一个表进行交互的列是某种的方式。
任何想法?

回答

1

这听起来像你在第一列的本事其实是一个数组的描述(这看起来像):

(
"firstValue", 
"secondValue", 
... 
"nthValue" 
); 

我不认为我读过的任何文件说你无法将不同的表列绑定到不同的数组控制器(并且现在找不到任何表格),但是我可以看到它为什么不起作用。在某些时候,表视图本身需要知道多少行有,其行选择和相关信息 - 绑定到多个阵列控制器装置,有可能是对每个问题不止一个答案。因此,这意味着假设每个表视图只能有一个阵列控制器是合理的,即使没有什么可阻止您设置更多。

+0

我认为你是对的。我还注意到,我无法将列绑定到myController中的数组。我认为表格阵列控制器绑定是一个特定的非常规解决方案... – Bakaburg 2010-07-24 19:23:24

1

您正在尝试为单个表使用多个数据源。相反,使用一个数组控制器并将您的两个数组转换为一个字典数组,其中每个数组都有两个字符串。然后,将每个表格列绑定到相应的字典键。

+0

更重要的是,而不是字典,使他们的模型对象。 http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ModelObjects/ – 2010-07-22 16:39:43

+0

很好的建议。我认为他们只是界面元素,因为他说他们是字符串文字。 – 2010-07-22 22:28:39

+0

你的意思是把这两个数组自定义对象与数组作为一个属性? – Bakaburg 2010-07-24 19:21:23

相关问题