我有以下代码:
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秒。然后它消失了。
答案 0 :(得分:6)
如果您使用ARC,
然后将window
作为该类的属性。它将被解决,因为在这种情况下它将被释放。
使用:
@property(strong) NSWindow* window;