0

我有一个单窗口 MacOS X 应用程序。

我在理解如何连接 MainMenu.xib NIB 文件的某些部分时遇到了一些问题。

我需要做的是能够在 MainMenu 的(void)windowDidLoad功能中做一些事情。我只是不知道如何将 MainMenu.xib 文件连接到 .m 文件。

我在 NIB 文件中创建了一个 NSObject 文件,然后我将其连接到一个名为 MainController 的文件,并在那里做了很多有效的事情。

编辑

好的,澄清我的问题:
假设我创建了一个新项目(我使用的是 Xcode 4.3.2)。
我选择 File > New > Project,然后选择 Mac OS X > Application > Cocoa Application
我按下一步,将 Product Name 设置为Awesomesauce,取消选中所有复选框,按 Next 最后选择一个文件夹来存储我的项目。

我现在有 3 个文件AppDelegate.hAppDelegate.m并且MainMenu.xib(我认为我不需要考虑的 Supporting Files 文件夹中还有一些东西)。

我想要一个NSWindowController可以连接到的文件MainMenu.xib。我创建了一个新文件(Objective-c Class > NSWindowController)并将其命名为MainMenuController

现在我打开 MainMenu.xib,在 Placeholders 下选择 File's Owner,在 Identity Inspector 下,我将 Custom Class > Class 设置为MainMenuController.

右击 File's Owner 我在window和之间创建了一个连接Window - Awesomesauce
我还添加到 MainMenuController.h 并在和<NSApplicationDelegate>之间创建连接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 。

我究竟做错了什么?

4

0 回答 0