无论保留设置如何,NSWindow都会自动释放

时间:2016-09-04 15:30:26

标签: cocoa automatic-ref-counting nswindow autorelease

我创建了一个实用程序NSWindow,它没有任何我希望在屏幕上和屏幕外切换的视图。每次我需要它弹出时我都不想创建它。这就是我创建它的方式:

界面中的

-(void)blackOutWindowOnOff:(BOOL)onOff;
@property (nonatomic, retain) NSWindow *blackOutWindow;

然后在创建应用程序时,我初始化窗口并将其命令以隐藏它:

NSRect e = [[NSScreen mainScreen] frame];
int H = (int)e.size.height;
int W = (int)e.size.width;

NSRect frame = NSMakeRect(0, 0, W, H);
_blackOutWindow = [[NSWindow alloc] initWithContentRect:frame
                                                styleMask:NSBorderlessWindowMask
                                                  backing:NSBackingStoreBuffered
                                                    defer:NO];
[_blackOutWindow setBackgroundColor:[NSColor blackColor]];
[_addChildWindow:self.blackOutWindow ordered:NSWindowAbove];
    [_blackOutWindow setReleasedWhenClosed:NO];
[_blackOutWindow orderOut:nil];

现在,当我运行包含以下内容的切换方法时,

[_blackOutWindow makeKeyAndOrderFront:self];
窗口已经不见了。它已被释放,无论我设置保留在属性上的事实如何,并且还发送消息,以便在关闭时不释放。

我不知道什么?

0 个答案:

没有答案