调用MainMenu的windowDidLoad函数

时间:2012-04-16 18:21:44

标签: objective-c macos cocoa

我有一个单一窗口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.hAppDelegate.mMainMenu.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

右键单击文件所有者我在windowWindow - Awesomesauce之间创建了一个连接 我还将<NSApplicationDelegate>添加到MainMenuController.h并在Window - Awesomesauce delegateFile'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。

我做错了什么?

0 个答案:

没有答案