我有一个单一窗口MacOS X应用程序。
我在理解如何连接MainMenu.xib NIB文件的某些部分时遇到了一些问题。
我需要做的是能够在MainMenu的(void)windowDidLoad
函数中做一些事情。我只是不知道如何将MainMenu.xib文件连接到.m文件。
我在NIB文件中创建了一个NSObject文件,然后我将其连接到一个名为MainController的文件,并在那里做了很多有用的工作。
修改
好的,要澄清我的问题:
假设我创建了一个新项目(我正在使用Xcode 4.3.2)
我选择文件>新>项目,那里我选择Mac OS X>申请>可可应用
我按下一步,将产品名称设置为 Awesomesauce ,取消选中所有复选框,按Next,最后选择一个文件夹来存储我的项目。
我现在有3个文件AppDelegate.h
,AppDelegate.m
和MainMenu.xib
(我在Supporting Files文件夹中也有一些我不认为需要考虑的内容)。< / p>
我想要一个NSWindowController
文件,我可以将其连接到MainMenu.xib
。我创建了一个新文件(Objective-c Class&gt; NSWindowController)并将其命名为MainMenuController
。
现在我打开MainMenu.xib,选择Placeholder下的File's Owner,在Identity Inspector下我设置Custom Class&gt;类为MainMenuController
。
右键单击文件所有者我在window
和Window - Awesomesauce
之间创建了一个连接
我还将<NSApplicationDelegate>
添加到MainMenuController.h并在Window - Awesomesauce delegate
和File's Owner
之间建立连接
此时我的MainMenuController看起来像这样:
@implementation MainMenuController
- (id)initWithWindow:(NSWindow *)window
{
self = [super initWithWindow:window];
if (self) {
NSLog(@"Initializing MainMenuController");
}
return self;
}
- (void)windowDidLoad
{
[super windowDidLoad];
NSLog(@"Window did load");
}
- (void)windowWillLoad{
NSLog(@"Window will load");
}
@end
当我运行我的应用程序时,我得到了Awesomesauce窗口但没有任何NSLog记录任何东西。这包括init方法中的NSLog。
我做错了什么?