我试图让我的NSWindow总是出现在我的应用程序的顶部,但我不希望它漂浮在已经变得活跃的其他应用程序上.我已经厌倦了以下代码,但这使得窗口浮动在其他应用程序上:
NSRect frame = NSMakeRect(100, 100, 800, 800);
myWindow = [[NSWindow alloc] initWithContentRect:frame
styleMask:NSBorderlessWindowMask
backing:NSBackingStoreBuffered
defer:NO];
[myWindow setLevel:NSFloatingWindowLevel ];
[myWindow setBackgroundColor:[NSColor blueColor]];
[myWindow makeKeyAndOrderFront:NSApp];
Run Code Online (Sandbox Code Playgroud)
我还尝试了NSWindow文档中列出的所有常量,并没有找到一个会让NSWindow浮动在其他窗口的其他窗口,而不是其他活动应用程序的其他窗口.这不可能吗?
没有内置的支持.您可以考虑将窗口设置为在取消激活时隐藏.
或者,您可以让窗口控制器观察NSApplicationWillResignActiveNotification和NSApplicationDidBecomeActiveNotification通知并调整窗口级别.当您的应用即将重新启动活动状态时,您将窗口级别设置为恢复正常.当它再次变为活动状态时,将其设置为浮动.(如果窗口由app delegate控制,那么您可以在-applicationWillResignActive:和-applicationDidBecomeActive:委托方法中执行此操作.)
| 归档时间: |
|
| 查看次数: |
1126 次 |
| 最近记录: |