如何创建一个自定义窗口按钮,当用户安装我的 macOS 应用程序时,该按钮会显示在每个应用程序窗口上?

问题描述 投票:0回答:1

基本上,我想做到这一点,以便当用户安装我的 macOS 14 程序时,每个打开的应用程序窗口的标准关闭、最小化和最大化按钮旁边会出现另一个窗口按钮。

Image explaining where I want to have a window button

我想让这个按钮在按下时“固定”应用程序,并防止用户关闭它,直到用户再次按下它,取消固定它。

问题是,我不知道如何实现这一点,而且作为 Swift 编程和应用程序开发的新手,官方 Xcode 文档对我来说非常混乱。我也花了无数时间研究这个问题,但似乎没有相关结果。我确信这是可能的,因为 Parallels Desktop 应用程序可以执行此操作(当您打开应用程序时,它会在交通锥旁边添加一个自定义蓝色按钮)。

有人可以帮我吗?我需要帮助来创建标准窗口按钮旁边的按钮,并在单击该按钮时禁用关闭按钮。如果这不能直接实现,那么有解决方法吗?我对此完全是初学者,因此任何有关具体和清晰说明的帮助将不胜感激。

顺便说一句,我使用的是 Xcode 15 和 Swift 5。

我尝试了一些解决方法,例如创建一个工具栏,然后向该工具栏添加一个按钮,但该按钮最终位于窗口的右侧,而我希望它位于左侧,紧邻标准窗口按钮。我还尝试创建一个按钮,然后将其放置在屏幕顶部,但它不允许我将按钮放置在高于标题栏的位置。

我也不知道如何禁用关闭按钮,以及如何使每个应用程序窗口都有此按钮。

swift xcode macos user-interface swiftui
1个回答
0
投票

我能想到的最好方法是使用

.navigation
工具栏放置,以及
.frame
让它们彼此靠近。你可以尝试这样的事情:

.toolbar {
    ToolbarItem(placement: .navigation) {
        Button {
            // Button action
        } label: {
            Image(systemName: "circle.dotted.circle.fill")
                .resizable()
                .scaledToFit()
                .padding(.leading, -10)
                .frame(width: 13, height: 13)
                .symbolRenderingMode(.hierarchical)
        }
        .ignoresSafeArea()
        .frame(width: 0, height: 15)
        .padding(.trailing, 10)
    }
}

我尝试了一下,似乎有效。您只需按照您想要的方式设置按钮的格式即可。不确定是否有替代解决方案,但希望这对您来说是一个很好的解决方法!

© www.soinside.com 2019 - 2024. All rights reserved.