2015-02-07 70 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作为视图容器。