2015-02-07 65 views
1

我一直在製作iOS應用程序一段時間,我決定開始致力於爲Mac製作一些iOS應用程序。NSWindow vs ViewController - OS X - Cocoa

我有這樣的問題:是否有任何需要NSWindow,現在開發的Mac是如此類似於iOS?

因此,我使用Xcode製作了一個簡單的可可應用程序,它帶有一個名爲「Main」的故事板,就像在iOS上一樣。

在該故事板文件中,有一個NSWindow然後鏈接到一個NSViewController。

我可以擺脫NSWindow嗎?當我嘗試將NSViewController設置爲「初始控制器」並且該應用程序仍然正常工作。那麼NSWindow有什麼意義呢?

另外,什麼類鏈接到NSWindow?我試圖模糊NSWindow的背景,但我沒有辦法將代碼鏈接到NSWindow。

對不起,我的愚蠢的問題,但我完全新的發展爲OS X

感謝您的時間,丹。

回答

5

這些都是在一個問題許多問題:

  1. 才能擺脫NSwindow的?不,你需要一個窗口來展示你的觀點。
  2. NSWindow有什麼意義?需要NSWindow作爲顯示視圖的窗口,並且您的事件正在響應者鏈中。
  3. NSWindow鏈接了哪些類?顯然NSWindow類,但這不是你想知道的。我想你想知道控制NSWindow的代表。這是NSWindowController,雖然MainMenu.xib是NSAppDelegate。

希望這會給你你需要的答案。在這個question中給出了一個在窗口中處理視圖的例子。

請參閱進一步詳情windows programming guide,其中規定:

的NSWindow類定義了管理和協調 窗口在屏幕上的應用程序顯示的對象。一個NSWindow對象最多對應一個屏幕窗口。 NSWindow對象的兩個主體 函數將提供一個區域,在該區域中可以放置NSView對象,並接受並分發適當的 視圖,該用戶通過使用鼠標和鍵盤進行操作來激發事件。

+0

感謝您的幫助:) – Supertecnoboff 2015-02-16 07:04:43

0

對於這個問題:我可以擺脫NSwindow?我有進一步的意見。在大多數情況下,您需要NSWindow才能在屏幕上顯示視圖;但在特殊情況下,例如,當您單擊NSStatusItem時,不會出現彈出視圖。 所以我的答案是每當你需要響應窗口事件,如min/max,你需要NSWindow作爲視圖容器。