如何跟踪NSWindow的开闭事件?

Eon*_*nil 9 events cocoa

我尝试过,– windowDidExpose:但没有用.我该怎么办呢?

我的窗口是一个实用工具窗口.

- 编辑更清晰 -

我想要的是:

viewWillAppear viewWillDisappear viewDidLoad viewDidUnload

在Cocoa Touch.

Kap*_*ppe 5

很老的问题,但仅用于文档目的:


跟踪打开: 在您的Windows控制器中覆盖方法:

-(void)showWindow:(id)sender
{
    //add this for track the window close
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(windowWillClose)
                                                 name:NSWindowWillCloseNotification
                                               object:nil];
    [super showWindow:sender];
    //do here what you want...
}
Run Code Online (Sandbox Code Playgroud)

跟踪关闭: 实施方法

-(void)windowWillClose
{
    [[NSNotificationCenter defaultCenter] removeObserver:self];
    //do here what you want...
}
Run Code Online (Sandbox Code Playgroud)


Pet*_*sey 4

windowDidClose:,但那可能只是指关闭;如果您向窗口发送消息orderOut:,我认为这并不重要。

您可能需要从您订购窗口进出的任何代码中跟踪它,或者对窗口的类进行子类化并重写方法,例如makeKeyAndOrderFront:orderOut:(至少无论您使用什么)以在调用之前发布自定义通知super