我是Cocoa编程的初学者。我想知道的是如何在Cocoa中创建一个新窗口。我创建了一个NSViewController和窗口。如教程所示,我能够将按钮添加到MainMenu窗口并向按钮添加操作。现在我添加了一个新的NSViewController。然后我去plist文件并首先加载它。我的问题如下。
添加新的NSViewController时,创建了h m和xib文件,但XIB文件只有自定义窗口,没有其他控制元素,如最小化最大按钮等。
其次,我添加了一些元素并运行了该文件。应用程序已运行但屏幕上未显示任何内容。我错过了什么。
答案 0 :(得分:1)
如果添加新的Nib-File,您通常只会创建一个新的NSWindowController
。
在Nib-Files中分离窗口或单独视图的优点可以是:
如果您不需要,只需在MainMenu.xib中添加一个新窗口即可 然后你可以让窗口在发布时可见,或者在它出口时使用它,并随时随地看到它。
否则你可以转到你的文件 - >添加新文件 - > NSWindowController的子类 将有一个复选框为您自动创建xib文件,请务必检查。
现在只需确保使用initWithWindowNibName:
进行初始化,然后在其上调用showWindow:
。
MyWindowControllerSubclass *wcs = [[MyWindowControllerSubclass alloc] initWithWindowNibName:@"TheNameOfMyNib"];
[wcs showWindow:self];
答案 1 :(得分:1)
我使用的是XCode 4.2。现在我更新到4.6.3。现在创建NSWindowController时,xib文件创建选项就在那里。所以它直接完成了。
否则,您需要添加一个窗口控制器和一个新的Window XIB。稍后您可以将属性添加到属性选项卡。然后将类更改为Window Controller并将Window链接到Object。
答案 2 :(得分:0)
如果要将视图控制器添加到窗口,那么它非常简单。 NSViewController
有一个名为view的属性。您可以将此视图添加到window.contentView。
您通常会创建一个包含视图的新xib文件,并将文件所有者设置为视图控制器。然后在-(id)initWithNibName:
方法中,您可以使用视图的nib名称调用super,以使用其视图实例化控制器。
如果要显示新窗口。然后创建一个新的NSWindowController
对象并实例化它,使用窗口的笔尖和控制器上的调用窗口将窗口置于前面。如果您的窗口已经初始化,那么您可以在控制器的窗口上调用orderFront:
,orderBack:
等方法。