代码之家  ›  专栏  ›  技术社区  ›  Thomi

如何强制Mac窗口进入前台?

  •  6
  • Thomi  · 技术社区  · 15 年前

    如何以编程方式强制mac窗口成为前窗口?我有窗口句柄,并希望确保我的窗口显示在所有其他窗口之上。我可以同时使用碳和;为了这个。

    2 回复  |  直到 15 年前
        1
  •  12
  •   Ken Aspeslagh    15 年前

    对于Cocoa,可以使用以下方法设置窗口级别:

    [window setLevel:NSFloatingWindowLevel];
    

    浮动窗口将显示在所有其他常规窗口的上方,即使您的应用程序未处于活动状态。

    如果要激活应用程序,可以使用:

    [NSApp activateIgnoringOtherApps:YES];
    

    [window makeKeyAndOrderFront:nil];
    
        2
  •  0
  •   drawnonward    15 年前

    如果可以(仅32位)使用kOverlayWindowClass:

    WindowRef carbon_window = NULL;
    CreateNewWindow( kOverlayWindowClass , ... , &carbon_window );
    // if you need cocoa:
    NSWindow *cocoa_window = [[NSWindow alloc] initWithWindowRef:carbon_window];
    

    否则,创建一个NSWindow并将window级别设置为 kCGOverlayWindowLevel .

    请注意,它也将位于仪表板上方。如果要低于dashbord,请使用kGutilityWindowLevel。