2012-03-14 111 views
3

我一直在閱讀關於Mac開發的幾本書,但是找不到我要找的信息。開發多窗口Mac應用程序需要的建議

這些書都描述瞭如何製作浮動窗口或窗格,但從未提及如何在一個窗口中製作它們。什麼我希望創建一個簡單的例子如下:

example

基本上,將有三個窗口;一個帶有單選按鈕的選擇器窗口,用於選擇當前正在使用哪個NSDocument,一個窗口下方的按鈕顯示右側不同的窗口,允許查看和操作某些數據。

對於例如,每個NSDocument可以具有能夠在通過點擊視圖A中所示的窗口中設置的顏色值,並且可以顯示在窗口中設置一些文本串通過點擊視圖B.

所以問題是:

  1. 對每個Doc#1和Doc#2使用單個NSDocument子類是否合適?
  2. 我應該使用哪些類來設置應用程序? NSWindowController? NSWindow? NSPanel?

我只是在尋找什麼讀取指導,所以任何指針都讚賞。

編輯:

爲了進一步闡明這一點,我想有在按鈕(視圖A & B)一個表視圖,並通過點擊他們,他們都將導致其他窗口/視圖改變它的內容。

這就像iPad設置應用程序中的分割視圖,左側有一個表格視圖,當它被按下時,右側會改變。

單選按鈕僅用於說明我想要多個文檔。我猜我需要一個以上來處理這個問題?或者,我應該把它們全部放在一個NSDocument中?不知何故,這看起來不正確。

+1

您正在詢問關於您的繪圖中的多窗口應用程序我得到的印象是您希望開發一個多視圖應用程序,並在單個窗口的邊界內處理所有視圖... – Roger 2012-03-14 01:50:00

+0

請參閱上面的我的編輯。是的,你的解釋聽起來很正確。但我認爲我需要多個NSWindowControllers,或者不需要? – TigerCoding 2012-03-14 03:57:04

+0

看到我的答案。你需要多個NSViewController。 – Roger 2012-03-14 16:39:36

回答

2

爲了實現你想要的,你需要一個窗口(NSWindow),一個窗口控制器和各自的視圖,每個窗口都有自己的視圖控制器。有幾種方法,你可以設置它,這完全取決於你的需求:

  • 你必須至少3次(中NSView實例):一個文檔類的選擇,一個用於視圖選擇和一個內容。每個視圖由視圖控制器控制(NSViewController的實例)。此外,您可以選擇將視圖封裝在拆分視圖(NSSplitView)中,以便用戶可以調整每個視圖可用的房地產的大小。

  • 你有一個窗口與窗口控制器。如果您在Xcode中選擇基於文檔的應用程序模板,Xcode將生成NSDocument的子類,您可以將其用作窗口控制器(或者選擇使用核心數據,Xcode將生成一個NSPersistentDocument的子類,並帶有需要訪問的所有鈴聲和哨子核心數據文件持久性)。

所以要回到你的問題:

1:是的,但根據您的要求。如果Doc#1與Doc#2完全不同,則可能需要重新評估。例如,Doc#1可能與#2具有完全不同的持久性要求。

2:這裏沒有一個單一的場景,但有一個適合我的場景:以基於文檔的應用程序(有或沒有核心數據)爲基礎的項目模板。使用生成的NSDocument(或NSPersistentDocument)子類作爲窗口控制器。使用NSView在您的窗口中實現視圖,其中每個視圖由其自己的控制器管理,該控制器是NSViewController的實例。

+0

非常感謝您的建議。它有很大的幫助,因爲我找不到這方面的信息。 – TigerCoding 2012-03-15 04:17:44

0

我知道這是一個古老的問題,但一種方法來做到這一點,你想如何使用:ContainerViews和設置他們的嵌入segue成爲你想要的視圖控制器。