2012-04-09 96 views
3

我有一個包含幾個相當複雜的視圖的窗口。現在,我使用一個NSWindowController來控制窗口和所有視圖的UI。它正在成爲一個相當龐大的班級,因爲它處理每個視圖的細節。將多個NSViewControllers連接到筆尖

儘管視圖行爲彼此獨立,所以我看到了將每個視圖的UI邏輯放入單獨控制器的機會。

按照Mac App Programming Guide,這正是視圖控制器是:

使用視圖控制器來分配工作管理更復雜的 窗口布局。您的視圖控制器一起工作 (帶有窗口控制器)來顯示窗口內容。

但是,我找不到任何文檔或例子說明這個想法在實踐中如何工作。除了窗口控制器之外,我還可以將多個視圖控制器添加到nib文件嗎?

回答

3

如果您將視圖控制器添加到筆尖,那麼它們將被實例化,並且您會將IBOutlet s添加到窗口控制器(假設這是筆尖的文件所有者)以連接它們。

然而就內存而言,該方案可能會變得昂貴,特別是您擁有的視圖控制器越多。您可能想要考慮在窗口控制器中懶惰地實例化它們(即只在需要時才這樣做),假設這在第一次呈現視圖之前不會導致令人反感的延遲。

不要害怕嘗試這兩種方法。其中之一可能對你最好。

在任何情況下,我都鼓勵您決定將所有代碼分解爲單獨的控制器。非常好。祝你好運。