objective-c - 检测窗口何时关闭?

标签 objective-c cocoa class window nswindowcontroller

我的一个类分配了一个自定义的NSWindowController,我的类如何知道窗口何时关闭?

CustomNSWindowController *wc = [[CustomNSWindowController alloc] init];
[wc showWindow:self];
//how to detect when window is closed?

我想做的是让原始类(分配自定义窗口 Controller 的类)知道窗口何时关闭,以便我可以在不再需要窗口时设置 wc = nil :)

最佳答案

如果您的 NSWindowController 类设置为窗口的委托(delegate),您只需响应 -windowWillClose: 方法即可。

- (void)windowWillClose:(NSNotification *)notification
{
    /* ... */
}

否则,由于这也是一个通知,您可以注册以接收来自任何类的通知。

- (void)myWindowWillClose:(NSNotification *)notification
{
    /* ... */
}

...
CustomNSWindowController *wc = ...;
[[NSNotificationCenter defaultCenter]
    addObserver:self
    selector:@selector(myWindowWillClose:)
    name:NSWindowWillCloseNotification
    object:[wc window]];
[wc showWindow:self];

参见NSWindow Class Reference , NSWindowDelegate Protocol Reference

关于objective-c - 检测窗口何时关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13163904/

相关文章:

objective-c - 使用 NSScanner 将 NSString 转换为 int 值

iphone - 如何检测前置或后置摄像头是否处于事件状态;以编程方式查找相机分辨率

ios - SKSpritenode:物理质量不会因重力而改变加速度

iphone - 手势识别器不适用于 subview

ios - 如何在 "MyClassName.var"之类的 objective-c 中使用类变量?

objective-c - 在 Obj-C 中发现给定类的子类

objective-c - NSPanel 没有收到 mousedragged 事件

java - 考虑到我的用例,创建自定义数据结构的理想方法

java - java中不同类加载器的需求是什么

c++ - 类型组的模板类的成员特化?