如何以编程方式强制将mac窗口作为前窗?我有窗口句柄,并希望确保我的窗口显示在所有其他窗口上方。我可以同时使用Carbon&可可为此。
答案 0 :(得分:12)
对于Cocoa,您可以使用以下方式设置窗口级别:
[window setLevel:NSFloatingWindowLevel];
即使您的应用未处于活动状态,浮动窗口也会显示在所有其他常规窗口上方。
如果您想激活应用,可以使用:
[NSApp activateIgnoringOtherApps:YES];
和
[window makeKeyAndOrderFront:nil];
答案 1 :(得分:0)
如果可以(仅限32位)使用kOverlayWindowClass:
WindowRef carbon_window = NULL;
CreateNewWindow( kOverlayWindowClass , ... , &carbon_window );
// if you need cocoa:
NSWindow *cocoa_window = [[NSWindow alloc] initWithWindowRef:carbon_window];
否则创建一个NSWindow并将窗口级别设置为kCGOverlayWindowLevel
。
请注意,这也将位于仪表板上方。如果你想要低于dashbord使用kCGUtilityWindowLevel。