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

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

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

当我执行-(void)makeMainWindow时,NSLog不执行任何操作。

而且,当我覆盖makeKeyAndOrderFront时,它根本不显示(按预期)。

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

最佳答案

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

[Asker编辑]

要添加代码,这应该是这样:

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

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

关于objective-c - 在NSWindow打开时运行方法吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23789760/

10-12 14:39