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 に答える