SwiftUI 内置的 MenuBarExtra
API 可以轻松地使用纯 SwiftUI 创建菜单栏应用程序。然而,在 macOS 13 中,它的功能非常有限。更糟糕的是,它的行为不正确(例如,它不进行动画,当用户与其它菜单项交互时,它不会关闭弹窗等等)。
FluidMenuBarExtra 提供了一个即插即用的替代方案来纠正这些问题。
scenePhase
环境变量访问菜单的场景阶段。像使用 Apple 的 MenuBarExtra 一样使用 FluidMenuBarExtra,例如:
import SwiftUI
import FluidMenuBarExtra
@main
private struct DemoApp: App {
@AppStorage("showMenuBarExtra") var showMenuBarExtra = true
var body: some Scene {
FluidMenuBarExtra("Demo", systemImage: "chevron.down.circle", isInserted: $showMenuBarExtra) {
Text("Hello, world!")
.padding(20)
}
}
}
另请参阅包含的演示应用程序以获取更详细的示例。
NSWindow
而不是 NSMenu
,您会发现 FluidMenuBarExtra 呈现的窗口比其他菜单具有稍大的圆角半径。欢迎所有贡献。如果您需要这种软件包,请随时解决任何问题并添加任何可能有用的功能。
FluidMenuBarExtra 在 MIT 许可证 下发布,除非另有说明。