2010-07-22 20 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

相關問題