如何删除 macOS SwiftUI App 中的“新窗口”选项?

Posted

技术标签:

【中文标题】如何删除 macOS SwiftUI App 中的“新窗口”选项?【英文标题】:How can i remove the "New window" option in macOS SwiftUI App? 【发布时间】:2021-12-12 11:28:17 【问题描述】:

I need to remove this option in my app

这是我的应用委托:

import AppKit
public class AppDelegate: NSObject, NSApplicationDelegate 
    public func applicationWillTerminate(_ aNotification: Notification) 
        MainViewModel.shared.saveSettings()
    
    public func applicationDidFinishLaunching(_ notification: Notification) 
        for window in NSApp.windows 
            var style = window.styleMask
            style.remove(.resizable)
            window.styleMask = style
            window.standardWindowButton(.zoomButton)?.isHidden = true
        
    
    public func applicationWillFinishLaunching(_ notification: Notification) 
        NSWindow.allowsAutomaticWindowTabbing = false
    

我该怎么做?

【问题讨论】:

请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。 【参考方案1】:

只需将 commands 修饰符添加到 WindowGroup,如下所示:

WindowGroup 
            MainView().frame(width: 300, height: 95)
        .commands 
            CommandGroup(replacing: CommandGroupPlacement.newItem) 
            
        

【讨论】:

以上是关于如何删除 macOS SwiftUI App 中的“新窗口”选项?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SwiftUI 生命周期中删除 macOS 中的最大化、最小化和关闭按钮?

macOS App SwiftUI 中的 ContextMenu 按钮点击

如何在 SwiftUI MacOS App 中使用 NSTouchBar?

在 macOS 上的 SwiftUI 列表视图中选择和删除核心数据实体

Swiftui: MacOS App: Fetching Core Data in ContentView OK,但是如何使用 AppDelegate 的结果呢?

macOS 上的 SwiftUI:如何为 onDelete 启用 UI(从列表中删除)