2

我希望能够在 Cocoa 应用程序中创建多个窗口实例。因此,我创建了一个 NSWindowController 和关联的 XIB。在我的应用程序委托中,我有以下代码:

- (IBAction)newWindow:(id)sender
{
    MyWindowController *wc = [[MyWindowController alloc]
            initWithWindowNibName:@"MyWindow"];
    [self.windowControllers addObject:wc];
    [wc showWindow:self];
}

我必须在某处保留一个指向窗口控制器的指针,因为否则 ARC 会释放它。我发现一个常见的解决方案是将其添加到可变数组中。但是,如果窗口稍后关闭,则引用仍将在数组中,因此不会被释放。

关闭窗口时从数组中删除窗口控制器的最佳方法是什么?

4

1 回答 1

2

你可以使用(BOOL)windowShouldClose:(id)sender-instance方法NSWindowDelegate

我在文档中找不到它,但(BOOL)windowWillClose:(id)sender先尝试使用。

这里

于 2012-08-02T17:36:19.587 回答