更新 macOS SwiftUI 中 WindowGroup 的 windowStyle-生命周期
Updating windowStyle of WindowGroup in macOS SwiftUI-life cycle
我希望能够通过 ContentView 更新我的应用程序的 windowStyle,我尝试了两种方法,但都失败了!希望解决 macOS SwiftUI-life cycle 的问题。
@main
struct macOSApp: App {
@State private var windowToolbarStyle: Bool = false
var body: some Scene {
WindowGroup {
ContentView(windowToolbarStyle: $windowToolbarStyle)
}
.windowStyle(windowToolbarStyle ? TitleBarWindowStyle() : HiddenTitleBarWindowStyle())
}
}
@main
struct macOSApp: App {
@State private var windowToolbarStyle: Bool = false
var body: some Scene {
if windowToolbarStyle {
WindowGroup {
ContentView(windowToolbarStyle: $windowToolbarStyle)
}
}
else {
WindowGroup {
ContentView(windowToolbarStyle: $windowToolbarStyle)
}
.windowStyle(HiddenTitleBarWindowStyle())
}
}
}
目前使用 SwiftUI 应用程序生命周期无法做到这一点。 SceneBuilder
doesn't implement buildEither
or buildIf
methods, which are required to support conditionals. Compare to ViewBuilder
,确实实现了它们并支持条件。
我希望能够通过 ContentView 更新我的应用程序的 windowStyle,我尝试了两种方法,但都失败了!希望解决 macOS SwiftUI-life cycle 的问题。
@main
struct macOSApp: App {
@State private var windowToolbarStyle: Bool = false
var body: some Scene {
WindowGroup {
ContentView(windowToolbarStyle: $windowToolbarStyle)
}
.windowStyle(windowToolbarStyle ? TitleBarWindowStyle() : HiddenTitleBarWindowStyle())
}
}
@main
struct macOSApp: App {
@State private var windowToolbarStyle: Bool = false
var body: some Scene {
if windowToolbarStyle {
WindowGroup {
ContentView(windowToolbarStyle: $windowToolbarStyle)
}
}
else {
WindowGroup {
ContentView(windowToolbarStyle: $windowToolbarStyle)
}
.windowStyle(HiddenTitleBarWindowStyle())
}
}
}
目前使用 SwiftUI 应用程序生命周期无法做到这一点。 SceneBuilder
doesn't implement buildEither
or buildIf
methods, which are required to support conditionals. Compare to ViewBuilder
,确实实现了它们并支持条件。