我的问题是在全屏模式下窗口的标题。
当我将光标移动到屏幕顶部时,我会看到以下内容:

但我想看到以下情况:

隐藏按钮不是问题:
wnd.standardWindowButton(NSWindow.ButtonType.closeButton)?.isHidden = true
wnd.standardWindowButton(NSWindow.ButtonType.miniaturizeButton)?.isHidden = true
wnd.standardWindowButton(NSWindow.ButtonType.zoomButton)?.isHidden = true但如何隐藏这条线?
谷歌对此只字不提=(
也许有某种额外的“安全区区域”必须以另一种方式被禁用?
WindowGroup {
SomeView()
.edgesIgnoringSafeArea(.top)
}
.windowStyle( HiddenTitleBarWindowStyle() )只在窗口模式下隐藏标题栏,而不从全屏隐藏。
守则:
NSApp?.mainWindow?.styleMask.insert(NSWindow.StyleMask.unifiedTitleAndToolbar)
NSApp?.mainWindow?.styleMask.insert(NSWindow.StyleMask.fullSizeContentView)
NSApp?.mainWindow?.styleMask.insert(NSWindow.StyleMask.titled)
NSApp?.mainWindow?.toolbar?.isVisible = false
NSApp?.mainWindow?.titleVisibility = .hidden
NSApp?.mainWindow?.titlebarAppearsTransparent = true在全屏模式下,也不要对标题行做任何事情。
发布于 2022-01-07 13:18:10
这好像是个虫子。这个问题找不到解决办法(只需向苹果提交一个bug ),但您可能会发现完全禁用菜单栏很有用,只需在窗口委托回调(如果您可以访问NSWindow实例的话)中返回[.fullscreen],然后在全屏上添加自己的浮动控制面板(只需想法)。
class WindowDelegate: NSObject, NSWindowDelegate {
func window(_ window: NSWindow, willUseFullScreenPresentationOptions proposedOptions: NSApplication.PresentationOptions = []) -> NSApplication.PresentationOptions {
return [.fullScreen]
}
}注意:更改应用程序选项的另一种方法是通过NSApp (以防万一),如
NSApp.presentationOptions = [.hideMenuBar, .hideDock]发布于 2022-01-13 23:10:12
若要完全删除标题栏,请使用NSWindow.StyleMask.Borderless。
注意,默认情况下,这也会禁用canBecomeKey和canBecomeMain属性,您需要将这些属性更改为true,否则其他各种事情都不能正常工作(例如键盘输入)。
我不确定现有的窗口是否能成为一个无边界的窗口。我隐约记得必须创建一个新窗口(或启用故事板中的标志)。
您也将不再有一个全屏按钮,所以输入和退出将不得不通过编程完成。
https://stackoverflow.com/questions/70576434
复制相似问题