我们在哪里可以为 MainMenu.xib 编写 windowDidBecomeKey 方法

Posted

技术标签:

【中文标题】我们在哪里可以为 MainMenu.xib 编写 windowDidBecomeKey 方法【英文标题】:where can we write windowDidBecomeKey method for MainMenu.xib 【发布时间】:2015-11-30 08:54:45 【问题描述】:

我认为这是一个简单的问题,但我是 Cocoa 的新手。我们在哪里可以为MainMenu.xib编写-windowDidBecomeKey方法,以便当主窗口成为键时应该调用该方法。谢谢。

【问题讨论】:

【参考方案1】:

首先,转到您的应用委托头文件,然后更改如下所示的内容:

@interface AppDelegate : NSObject <NSApplicationDelegate>

到这里:

@interface AppDelegate : NSObject <NSApplicationDelegate, NSWindowDelegate>

然后进入实现文件,实现方法:

- (void)windowDidBecomeKey:(NSNotification *)notification 
    // do something

然后在界面生成器中右键单击窗口的标题栏,并将 Delegate 旁边的点拖到您的应用委托上。


或者,您可以收听通知。将此添加到 applicationDidFinishLaunching 方法中:

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(windowDidBecomeKey:)
                                             name:NSWindowDidBecomeKeyNotification
                                           object:_window];

这种方法的优点是您可以随意命名监听器方法。

【讨论】:

以上是关于我们在哪里可以为 MainMenu.xib 编写 windowDidBecomeKey 方法的主要内容,如果未能解决你的问题,请参考以下文章

界面生成器无法确定“mainmenu.xib”的类型

在 Xcode 5 中禁用基本本地化后找不到 MainMenu.xib

如何在 Cocoa 应用程序中手动创建和附加 MainMenu.xib?

UIApplicationDelegate 与 NSApplicationDelegate、MainMenu.xib

Xcode 6.3.1 中没有 mainmenu.xib 文件

不从 MainMenu.xib 加载窗口,而是加载另一个窗口