2013-01-18 89 views
3

我有下面的代码:NSWindow没有显示?

NSRect contentRect = NSZeroRect; 
contentRect.size = NSMakeSize(400, 400); 
contentRect.origin = NSMakePoint(400, 400); 

NSWindow* window = [[NSWindow alloc] initWithContentRect:contentRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO]; 


[window setBackgroundColor:[NSColor blackColor]]; 
[window setMovableByWindowBackground:NO]; 
[window setExcludedFromWindowsMenu:YES]; 
[window setAlphaValue:0.8]; 
[window setOpaque:NO]; 
[window setHasShadow:YES]; 
[window useOptimizedDrawing:YES]; 

[NSApp activateIgnoringOtherApps:YES]; 
[window makeKeyAndOrderFront:nil]; 

它是由- (BOOL) applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)flag调用。单击Dock图标时会调用此函数。

为什么我的窗口不显示?

我还注意到,当点击停靠时间图标上的时间。有时我看到我的窗户出现了1/10秒。然后消失。

回答

6

如果使用ARC,

然后让window为属性的类。它将被解决,因为在这种情况下它会被释放。

用途:

@property(strong) NSWindow* window;

+0

是的,就是这样。谢谢 ! –

+0

是否工作? –

+1

我把这个窗口作为一个实例变量。它解决了我的问题.. –