2013-01-09 48 views
2

在iOS中,你有一個觀察遏制的概念,在OSX中有這樣的事情嗎?在NSViewController中是否存在viewcontroller遏制的概念

基本上我想創建多個nsviewcontroller,每個管理一個特定的視圖。我會在左邊有一個菜單的MasterViewController(比如iTunes),每當用戶點擊左邊的一個項目時,它會加載正確的nsviewcontroller來顯示它的視圖。

任何提示,以實現我需要的是理解

感謝,

回答

1

由於OSX 10.10存在的,看Storyboards and Controllers on OS X


評論。此評論有用嗎?

NSViewController多年來基本沒有做任何事情(其他的加載NIB),我很高興看到它最終得到了關注。可可人羣中的某些人對視圖控制器編程風格有着蠻橫的態度;我之前曾問過這樣的問題,並且有過「你是否可以參加Cocoa的iOS新手」的迴應。這是我從來沒有理解的,這是一個很好的遏制和重用模型。

0

OS X和iOS的主要區別在於iOS設備上只有一個「窗口」。在OS X上,有一些桌面可以包含許多可以同時查看和交互的窗口。

一般來說,聽起來好像您正在嘗試創建一個NSWindow,其中包含您左側選擇列表的單列NSTableView,以及其他一些視圖,這些視圖將顯示右側選區的詳細信息。通常將這些放置在垂直NSSplitView中,以便用戶可以調整其相對寬度,但它們也可以獨立存在,作爲窗口主視圖中的兩個單獨子視圖。

您通常使用NSArrayController來管理列表內容並跟蹤選擇哪個特定項目。對於右側的詳細視圖,您可以使用帶有NSControl子視圖的單個NSView,這些子視圖顯示綁定到數組控制器所選對象的值。

如果數據結構因對象不同而不同,請根據需要爲所選特定對象所代表的不同類型的數據交換或顯示/隱藏各種子視圖。您可以使用「條件設置隱藏」綁定選項來自動隱藏沒有適用鍵控值的控件。或者,如果列表中存在固定數量的對象,並且它們的結構彼此完全不同,那麼您可能希望使用一個tabless NSTabView,它具有一個單獨的選項卡,並具有用於每個選項的自定義視圖對象。觀察選擇在列表中更改的時間,並相應地選擇適當的選項卡。