我创建了一个实用程序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];
窗口已经不见了。它已被释放,无论我设置保留在属性上的事实如何,并且还发送消息,以便在关闭时不释放。
我不知道什么?