在NSWindow开放时运行方法?

时间:2014-05-21 17:10:59

标签: objective-c cocoa nswindow

我有一个NSWindow,我正在从.xib文件中的MenuBarItem向窗口启动makeKeyAndOrderFront - 它很有效。

但是,我想在这个窗口打开时运行一个方法,所以我将NSWindow子类化并将窗口设置为子类。

当我执行快捷方式时,窗口打开但不是主窗口,在执行-(void)makeKeyWindow

当我-(void)makeMainWindow时,NSLog什么都不做。

而且,当我覆盖makeKeyAndOrderFront时,它根本不会显示(正如预期的那样)。

任何帮助表示赞赏!谢谢!

1 个答案:

答案 0 :(得分:3)

当您覆盖-makeKeyAndOrderFront:时,窗口停止显示的原因是您忽略了覆盖调用super的实施。

[由Asker编辑]

要添加代码,请按以下步骤操作:

- (void)makeKeyAndOrderFront:(id)sender {
    // what to do when the window is shown:

    [super makeKeyAndOrderFront:sender]; // key line, you MUST have this
}