2010-12-06 69 views
1

我是Objective-C和Cocoa編程的新手(來自多年前在其他平臺上的C/C++開發背景)。我正在編寫一個應用程序以循環方式下載遠程數據(即每隔X秒),解析它,將它篩選到NSArray中,並在NSTableView中顯示/更新所述數據。在閱讀了幾本書,很多Apple OS X參考資料和實驗後,我實現了一切(遠程數據下載,解析/過濾邏輯,內存存儲等),除了實際上用數據更新NSTableView 。如何以編程方式訪問在Interface Builder中創建的NSTableView?

我不確定我是否錯過了某些顯而易見的東西,或者我的應用程序應該如何遵循MVC概念佈置,或者如果Interface Builder缺乏實際的代碼生成功能,我不習慣使用它,但是我不能似乎決定了我如何以編程方式訪問/操作在Interface Builder中創建的NSTableView。我試圖(在Interface Builder中)拖拽基於NSArray的對象的NSObject實例,然後我可以連接我的NSTableView的Outlet/datasource,但這會導致我基於NSArray的對象的另一個實例(而不是將NSTableView連接到我現有的,以編程方式聲明和實例化的對象)。同樣,我想以編程方式設置我的NSTableView的數據源,但是我一直無法確定如何以編程方式引用存儲在.xib/.nib文件中的NSTableView對象,而不是通過標記(我還沒有以確定在Interface Builder中設置NSTableView的標記值後,調用viewWithTag:方法的對象)。

任何建議,意見或指導將不勝感激。這感覺就像其中一件很簡單的事情(一旦我在它前面工作,它會變得更有意義),但我似乎無法得到一個起點/例子的工作。

+1

你的班級頭文件中是否有`IBOutlet NSTableView`? – BoltClock 2010-12-06 16:41:51

+2

我會建議您購買初學iPhone開發書之一,因爲它涵蓋了這些項目中的典型過程 - 創建標題,分配IBOutlets,運行IB,將GUI附加到IBOutlets等。 – KevinDTimm 2010-12-06 17:08:58

回答

2

您需要將表的控制器類中的實例變量附加到界面構建器中的表中。在你的班級中聲明這樣的表格:

IBOutlet NSTableView* myTable; 

... 

@property (nonatomic, retain) IBOutlet NSTableView* myTable; 

並且一定要合成它。

在界面構建器的信息窗口的連接選項卡中,將控制器的新插座連接到您的表格。然後當你的視圖從XIB加載時,這個插座將被連接。

希望有助於一些。

相關問題