fix: resolve SwiftUI infinite layout freeze caused by MenuBarExtra isInserted binding to StateObject by using AppStorage

This commit is contained in:
nimbold
2026-06-03 05:07:55 +03:30
parent ff03a4cda5
commit 7e4915f31d
2 changed files with 5 additions and 3 deletions
+2 -1
View File
@@ -5,6 +5,7 @@ struct FirelinkApp: App {
@StateObject private var settings: AppSettings
@StateObject private var controller: DownloadController
@StateObject private var schedulerController: SchedulerController
@AppStorage("showMenuBarIcon") private var showMenuBarIcon = true
init() {
let settings = AppSettings()
@@ -59,7 +60,7 @@ struct FirelinkApp: App {
}
}
MenuBarExtra("Firelink", systemImage: "arrow.down.circle", isInserted: $settings.showMenuBarIcon) {
MenuBarExtra("Firelink", systemImage: "arrow.down.circle", isInserted: $showMenuBarIcon) {
TrayMenuView()
.environmentObject(controller)
}
+3 -2
View File
@@ -121,6 +121,7 @@ struct SettingsView: View {
private struct LookAndFeelSettingsPane: View {
@EnvironmentObject private var settings: AppSettings
@AppStorage("showMenuBarIcon") private var showMenuBarIcon = true
var body: some View {
Form {
@@ -153,9 +154,9 @@ private struct LookAndFeelSettingsPane: View {
}
Section("Menu Bar") {
Toggle("Show menu bar icon", isOn: $settings.showMenuBarIcon)
Toggle("Show menu bar icon", isOn: $showMenuBarIcon)
Text("Provides quick access to downloads and queues from the macOS menu bar.")
Text("Provides quick access to downloads and queues from the macOS menu bar. Restart required if hiding.")
.font(.caption)
.foregroundStyle(.secondary)
}