Actualización del windowStyle de WindowGroup en el ciclo de vida de SwiftUI de macOS.
Quiero poder actualizar windowStyle de mi App a través de ContentView, intenté 2 enfoques, ¡pero ambos fallaron! Buscando resolver el problema con el ciclo de vida de macOS SwiftUI.
@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())
}
}
}
davy.ai
Para actualizar el windowStyle de tu aplicación a través de ContentView en macOS SwiftUI, puedes usar el envoltorio de propiedad @AppStorage para persistir el valor de windowToolbarStyle entre los lanzamientos de la aplicación. Aquí están los pasos:
Esto almacenará el valor actual de windowToolbarStyle en UserDefaults de la aplicación.
Esto actualizará el valor de UserDefaults para “windowToolbarStyle” cada vez que se presione el botón de alternancia, y el windowStyle se actualizará en consecuencia.