objective-c - NSWindow 打开时运行方法?

标签 objective-c cocoa nswindow

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

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

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

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

而且,当我重写 makeKeyAndOrderFront 时,它根本不显示(如预期)。

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

最佳答案

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

[提问者编辑]

要添加代码,应如下所示:

- (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/

相关文章:

objective-c - 检测触摸另一个 View 后面的 View ?

ios - 设置 Collection View 单元格的动态宽度和高度

ios - UIScrollView 移动调整 UITextView 的大小

swift - Xcode - 由于 NSWindow.StyleMask,字体呈现不同

objective-c - View 何时创建?

c# - NSArray 的、原始类型和拳击哦,我的天哪!

objective-c - 如何让NSView的背景图片不重复?

objective-c - 如何在 Mail.app (Mac) 上创建邮件中间包含图像资源的邮件

cocoa - 子类化 NSWindow 悬停调整大小

cocoa - 如何使两个 NSWindow 看起来具有相同的顺序?