gpt4 book ai didi

objective-c - OSX 覆盖原生全屏模式

转载 作者:搜寻专家 更新时间:2023-10-30 20:09:17 25 4
gpt4 key购买 nike

我们的应用程序需要覆盖到全屏。对于常规全屏(浏览器 Flash 全屏,如 Prezi 或 Youtube),它可以工作,但对于 native 全屏(Lion 全屏、全屏模式、其他空间),它不会...

问题是,如何强制窗口在全屏模式和 KeyNote 全屏模式下出现?

示例应用:
_window 是一个 NSWindow(NSPanel 也不起作用)

- (void) activeSpaceDidChange:(NSNotification *)aNotification {
if ([_window isVisible] && ![_window isOnActiveSpace])
[_window orderOut:self];

[_window setCollectionBehavior: NSWindowCollectionBehaviorCanJoinAllSpaces | NSWindowCollectionBehaviorFullScreenAuxiliary];
[_window makeKeyAndOrderFront:self];
[_window setCollectionBehavior:NSWindowCollectionBehaviorMoveToActiveSpace | NSWindowCollectionBehaviorFullScreenAuxiliary];
}

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[_window setCollectionBehavior: NSWindowCollectionBehaviorCanJoinAllSpaces | NSWindowCollectionBehaviorFullScreenAuxiliary];

[_window orderFrontRegardless];
[_window setLevel:NSStatusWindowLevel];
[_window setHidesOnDeactivate: NO];

[[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self selector:@selector(activeSpaceDidChange:) name:NSWorkspaceActiveSpaceDidChangeNotification object:nil];
}

编辑:

现在使用 Tyler 的代码片段,面板可以在全屏模式下工作,但不幸的是不能在 KeyNote 全屏模式下工作。

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[_window setStyleMask:NSUtilityWindowMask | NSNonactivatingPanelMask];
[_window setLevel:NSFloatingWindowLevel];
[_window setCollectionBehavior:NSWindowCollectionBehaviorCanJoinAllSpaces|NSWindowCollectionBehaviorFullScreenAuxiliary];
}

最佳答案

您不应该需要“activeSpaceDidChange”通知行,它似乎需要是一个 NSPanel。在您的 applicationDidFinishLaunching 中,只需执行以下操作即可:

[_window setStyleMask:NSUtilityWindowMask | NSNonactivatingPanelMask];
[_window setLevel:NSFloatingWindowLevel];
[_window setCollectionBehavior:NSWindowCollectionBehaviorCanJoinAllSpaces|NSWindowCollectionBehaviorFullScreenAuxiliary];

关于objective-c - OSX 覆盖原生全屏模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19933171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com