1

我是 Cocoa 编程的初学者。我只想知道如何在 Cocoa 中创建一个新窗口。我创建了一个 NSViewController 和窗口。如教程中所示,我能够向 MainMenu 窗口添加按钮并向按钮添加操作。现在我添加了一个新的 NSViewController。然后我去了 plist 文件并首先加载它。我的问题如下。

添加新的 NSViewController 时,创建了 hm 和 xib 文件,但 XIB 文件只有自定义窗口,没有其他控制元素,如最小化最大按钮等。

其次,我添加了一些元素并运行了文件。应用程序运行但屏幕上没有显示任何内容。我是不是错过了什么。

4

3 回答 3

1

NSWindowController如果您添加一个新的 Nib 文件,您通常只会创建一个新的。

在 Nib-Files 中分离窗口或分离视图的优点是:

  1. 让你的代码更有条理
  2. 轻松实例化多个相同类型的窗口(如浏览器窗口)

如果您不需要这个,您可以简单地在 MainMenu.xib 中添加一个新窗口。
然后,您可以让窗口在启动时可见,或者为它创建一个出口并在您需要时使其可见。


否则,您可以转到您的文件 -> 添加新文件 -> NSWindowController 的子类
将有一个复选框自动为您创建 xib 文件,请务必选中。

现在只需确保使用 初始化initWithWindowNibName:,然后调用showWindow:它。

MyWindowControllerSubclass *wcs = [[MyWindowControllerSubclass alloc] initWithWindowNibName:@"TheNameOfMyNib"];
[wcs showWindow:self];
于 2013-08-20T13:10:04.610 回答
1

我使用的是 XCode 4.2。现在我更新到 4.6.3。现在在创建 NSWindowController xib 文件创建选项时。所以它直接完成。

否则,您需要添加一个窗口控制器和一个新的窗口 XIB。稍后您可以将对象添加到属性选项卡。然后将类更改为 Window Controller 并将 Window 链接到 Object。

于 2013-08-22T05:10:07.263 回答
0

如果您想将视图控制器添加到窗口中,则相当简单。NSViewController有一个名为 view 的属性。您可以将此视图添加到 window.contentView。

您通常会创建一个带有视图的新 xib 文件并将文件所有者设置为您的视图控制器。然后在该-(id)initWithNibName:方法中,您可以使用视图的 nib 名称调用 super 以使用其视图实例化控制器。

如果你想显示一个新窗口。然后创建一个新NSWindowController对象并实例化它,使用窗口的 nib 和控制器上的调用窗口应该将窗口带到前面。如果您的窗口已经被初始化,您可以在控制器的窗口上调用orderFront:,之类的方法。orderBack:

于 2013-08-20T13:12:15.260 回答