在iPhone上工作了很長時間後,我重新回到Mac上的Cocoa開發。我以前在Mac上使用Cocoa的經驗只是一些小工具。我期待建立一些認真的事情。Mac OS X上的可可應用程序體系結構
看着像iPhoto(或郵件或東西或....)的現代可可應用程序,許多應用程序使用基於單窗口,源列表的方法。我試圖盡我所能地把我的頭圍住,因爲它似乎提供了一個很好的體驗。但是,我有點麻煩。以下是我認爲它應該是,但我不知道別人是怎麼做的,什麼是真正的最佳方法:應用程序的
出發點是一個AppDelegate的物體,發射後,會創建一個窗口[控制器?],以及設置其數據(來自CoreData)
WindowController加載一個基本上只有一個NSSplitView的窗口。
splitview的左側有一個NSTableView或NSOutlineView,它被設置爲具有SourceList樣式。
右側有應用程序的主要內容,具體取決於選擇表格視圖中的哪個項目。
我會假設某處(哪裏?)有NSViewControllers管理的每一個將出現在右側的不同看法(認爲iPhoto中有着怎樣的所有照片,事件,面孔,地點等,和我想象他們都可能出現在不同的筆尖中......這是正確的嗎?)。
那些視圖控制器可能綁定到左側的源列表..這是如何工作的(源列表是由NSViewControllers的NSArrayController支持的?)。
無論如何,那些是我的想法,我是完全脫離基地還是...?我查看了網絡,發現了這個帖子here,我查看了一些蘋果的源代碼,但是我似乎無法將它包裹起來。任何指導都會受到歡迎。
我確實給了它很多想法,我認爲它適合我的情況。 我認爲每種不同的觀點都會有不同的觀點來證明自己的觀點,但我不確定。在做iPhone工作時,我很少使用InterfaceBuilder,但是Bindings與它很好地結合在一起,我認爲是時候開始使用它了。我也讀過凱茜的文章,但這又是一個不同方向的拖拽,因此我對它應該如何工作感到困惑。 – jbrennan 2009-09-03 15:27:26
真正的問題並不是視圖有多麼不同,而是您使用的是什麼 - 您將要放置哪些模型對象。如果這兩種觀點表現出不同的事物,它們應該是不同的觀點,每種觀點都有自己的筆尖。 – 2009-09-03 15:45:50
對,他們會是不同的筆尖,因爲他們顯示不同類型的東西。如何切換筆尖工作?當我在我的源列表中選擇不同的行時,如何觸發一個新的筆尖被加載? (另外,應該加載一個新的ViewController,或只是換出右側的視圖嗎?) – jbrennan 2009-09-04 19:42:12