2012-03-12 19 views
0

建議使用多個選項卡創建選項卡視圖的建議做法是什麼?我應該爲所有視圖使用單個XIB文件還是每個視圖具有不同的XIB?我的首選是在選項卡視圖中爲每個視圖使用多個控制器,並因此使用不同的xib文件。我怎樣才能實現它? 是否有可能在每個選項卡視圖的單個xib文件中有多個視圖,每個視圖都有不同的控制器?在Cocoa桌面應用程序中使用多個選項卡創建選項卡視圖的建議做法是什麼

回答

1

標籤總是一樣的,還是動態的?如果它們始終相同,我傾向於使用單個xib文件,只是因爲它很容易。你仍然可以使用多個控制器對象 - 只需使它們成爲NSObject的子類,然後將它們全部放入同一個xib中。

我做了一個快速谷歌,看看是否有一個簡單的方法使用NSViewController s與選項卡視圖,我發現this thread。這包含了一些示例代碼以瞭解如何使用它們,這將爲您提供單獨的控制器類和每個選項卡的xib。顯然,我沒有嘗試過這些代碼,所以我不能擔保,但這可能是一個足夠好的開始。 (在這個示例代碼中,每次切換選項卡時它都會實例化一個新的視圖控制器,這可能不是您想要的 - 如果是我,我會在第一次將選項卡交換到時將它們實例化,然後保留它們在窗口控制器和隨後的開關中的字典中,然後只需拔出已存在的相應視圖控制器即可。)

0

最佳方法取決於選項卡的複雜程度。但是,當您爲它們添加多個視圖時,XIB很快會變得雜亂無章。你也冒着臃腫的控制器的風險。

我會說最好的方法是每個選項卡都有一個視圖和一個控制器。這將使未來的應用程序擴展更容易實現。

您將擁有一個主控制器(窗口或視圖),用於處理包含選項卡視圖的視圖(或窗口)。此控制器充當您的代表NSTabView(請參閱NSTabViewDelegate)。

一旦您的控制器收到tabView:didSelectTabViewItem:消息,您可以創建管理該特定選項卡的子控制器。該控制器將實例化其相關視圖(initWithNib)並將其添加到視圖層次結構中。您可以爲選項卡視圖中的每個選項卡重複此過程。您可以按照主控制器(頂層)控制器維護每個子控制器列表的方式進行設置,因此您只需創建一次。

相關問題