モーダルを表示するNSWindow/Controllerがあります。次のようなアクションに接続された「閉じる」ボタンがあります。
- (IBAction)close:(id)sender
{
[self.window orderOut:sender];
[self.window close];
[[NSApplication sharedApplication] stopModal];
}
メインウィンドウから、モーダルを表示します。
- (IBAction)modal:(id)sender
{
NSLog(@"Before: %lu", [[[NSApplication sharedApplication] windows] count]);
ModalWindowController *modal = [[ModalWindowController alloc] initWithWindowNibName:@"ModalWindowController"];
[[NSApplication sharedApplication] runModalForWindow:modal.window];
NSLog(@"After: %lu", [[[NSApplication sharedApplication] windows] count]);
}
モーダルを数回開いたり閉じたりすると、出力は次のようになります。
2013-01-17 14:36:08.071 Modals[3666:303] Before: 1
2013-01-17 14:36:08.962 Modals[3666:303] After: 2
2013-01-17 14:36:09.578 Modals[3666:303] Before: 2
2013-01-17 14:36:11.009 Modals[3666:303] After: 3
2013-01-17 14:36:12.108 Modals[3666:303] Before: 3
2013-01-17 14:36:12.910 Modals[3666:303] After: 4
したがって、[[[NSApplication sharedApplication]windows]count]は増加するだけです。
モーダルウィンドウを開いたり閉じたりすると、増減することが予想されます。私のアプリケーションはARCを使用しています。誰かが私にこれを説明できますか?
前もって感謝します