2012-07-17 47 views
0

我創建了一個類:MyArrayController,它是NSArrayController的子類,並將其綁定到一個表。如何實現NSArrayController子類的init方法

我需要一個人對象傳遞給MyArrayController對象,就像使用方法:

-initWithPerson:(Person *)person; 

但由於MyArrayController被自動創建(因爲我沒有明確的Alloc它,我認爲它是由可可自動創建),我無法獲得MyArrayController的對象或明確地初始化它。

我能做些什麼來設置一個人對象到MyArrayController?

+0

你是什麼意思「傳遞一個人的對象」到你的數組控制器?你想將該對象添加到控制器的排列對象嗎? – rdelmar 2012-07-17 15:24:11

+0

這就像聊天記錄程序,裏面有兩個表格:表格1是人員列表,當我點擊一個人的時候會彈出一個窗口,其中顯示錶格2顯示聊天記錄。我實現MyArrayController表2,表2只是使用人名來顯示在列1 – NOrder 2012-07-18 00:46:31

回答

1

執行此操作的典型方法不是使用NSArrayController子類。從您的描述中,您並不試圖改變NSArrayController的行爲,您只是試圖指定其內容。做到這一點的方法是將NSArrayController放入您的nib文件並將其綁定到您的表。將IBOutlet添加到您的NSWindowControllerNSViewController,並綁定到NSArrayController。用您想在表格中顯示的內容創建並預填一個NSArray。然後在您的awakeFromNibwindowDidLoad方法中,您調用setContent:NSArrayController的內容數組設置爲您創建的NSArray。大致如下:

IBOutlet NSArrayController *myArrayController; 

    NSArray *contentArray = [NSArray arrayWithObject:person]; 
    [myArrayController setContent:contentArray]; 
+0

謝謝,我創建了一個IBOutlet,然後一切都很好。 – NOrder 2012-07-18 08:50:22

相關問題