15

在iPhone上工作了很長時間後,我重新回到Mac上的Cocoa開發。我以前在Mac上使用Cocoa的經驗只是一些小工具。我期待建立一些認真的事情。Mac OS X上的可可應用程序體系結構

看着像iPhoto(或郵件或東西或....)的現代可可應用程序,許多應用程序使用基於單窗口,源列表的方法。我試圖盡我所能地把我的頭圍住,因爲它似乎提供了一個很好的體驗。但是,我有點麻煩。以下是我認爲它應該是,但我不知道別人是怎麼做的,什麼是真正的最佳方法:應用程序的

  • 出發點是一個AppDelegate的物體,發射後,會創建一個窗口[控制器?],以及設置其數據(來自CoreData)

  • WindowController加載一個基本上只有一個NSSplitView的窗口。

  • splitview的左側有一個NSTableView或NSOutlineView,它被設置爲具有SourceList樣式。

  • 右側有應用程序的主要內容,具體取決於選擇表格視圖中的哪個項目。

我會假設某處(哪裏?)有NSViewControllers管理的每一個將出現在右側的不同看法(認爲iPhoto中有着怎樣的所有照片,事件,面孔,地點等,和我想象他們都可能出現在不同的筆尖中......這是正確的嗎?)。

那些視圖控制器可能綁定到左側的源列表..這是如何工作的(源列表是由NSViewControllers的NSArrayController支持的?)。

無論如何,那些是我的想法,我是完全脫離基地還是...?我查看了網絡,發現了這個帖子here,我查看了一些蘋果的源代碼,但是我似乎無法將它包裹起來。任何指導都會受到歡迎。

回答

6

將觀點分解成單獨的筆尖主要是好的,如果您要爲其他人交換一些視圖,因爲您可以延遲加載它們。是的,在現代的應用程序,你可以使用NSViewController,或者KTViewController從KTUIKit(見the posts she co-wrote about NSViewController

不要只是去不過運行到源列表的懷抱。單窗口界面可以適用於簡單的應用程序,但是當你有很多事情正在進行時,它可能很快變得笨拙,因爲它們可以通過將它們分成獨立的窗口來更好地服務; iTunes和Xcode都提供了很多例子(特別是後者,因爲你可以在SWI和MWI之間切換)。

您需要考慮多窗口還是單窗口界面對您的應用程序會更好。所有應用程序都沒有一個答案。它完全取決於你的應用程序,你希望它做什麼,以及你希望它看起來如何 - 你是唯一能夠回答這個問題的人(加上你的團隊的其他人,如果你有的話)。您可能需要做一些紙質原型設計,以便在每個方向上進行快速實驗,以便至少可以將兩個UI的假實例相互對抗。

+0

我確實給了它很多想法,我認爲它適合我的情況。 我認爲每種不同的觀點都會有不同的觀點來證明自己的觀點,但我不確定。在做iPhone工作時,我很少使用InterfaceBuilder,但是Bindings與它很好地結合在一起,我認爲是時候開始使用它了。我也讀過凱茜的文章,但這又是一個不同方向的拖拽,因此我對它應該如何工作感到困惑。 – jbrennan 2009-09-03 15:27:26

+0

真正的問題並不是視圖有多麼不同,而是您使用的是什麼 - 您將要放置哪些模型對象。如果這兩種觀點表現出不同的事物,它們應該是不同的觀點,每種觀點都有自己的筆尖。 – 2009-09-03 15:45:50

+0

對,他們會是不同的筆尖,因爲他們顯示不同類型的東西。如何切換筆尖工作?當我在我的源列表中選擇不同的行時,如何觸發一個新的筆尖被加載? (另外,應該加載一個新的ViewController,或只是換出右側的視圖嗎?) – jbrennan 2009-09-04 19:42:12

4

一個簡單的方式來獲得豆粒分裂的方式感覺是剛剛進入iPhoto的目錄,如果你想探索多一點進級結構,你可以嘗試啓動開放碎粒

使用F-Script

+0

我已經瀏覽了一些他們的筆尖,但他們中的很多人都是舊的應用程序,寫在像NSViewController這樣的好東西之前,所以我想知道,從現在的技術來看,構建它們的最佳方法是什麼。 – jbrennan 2009-09-03 02:48:13

+0

@cobbal你是什麼意思?「開始打開筆尖?」當我瀏覽應用程序包的內容並從字面上嘗試從Finder中打開它們時,它會導致錯誤或顯示不多。它說「編譯的筆尖無法打開」,當我使用舊的(3.2)Interface Builder時,或者只是在Xcode 4中顯示一個巨大的筆尖圖標。 – febeling 2012-02-27 08:19:53

+0

@febeling很有可能這個信息現在已經過時了,但對我來說Xcode(4.2)可以打開iPhoto的筆尖('09)。 – cobbal 2012-02-27 15:32:01

相關問題