Rewrite menu bar extra with AppKit

This commit is contained in:
世界
2026-01-05 19:19:11 +08:00
parent 91edd77b00
commit ce0d7ead88
17 changed files with 666 additions and 301 deletions
+16 -12
View File
@@ -57,23 +57,27 @@ public struct MainView: View {
}
}
.onChangeCompat(of: controlActiveState) { newValue in
viewModel.onControlActiveStateChange(newValue, environments: environments)
Task { @MainActor in
viewModel.onControlActiveStateChange(newValue, environments: environments)
}
}
.onChangeCompat(of: viewModel.selection) { value in
viewModel.onSelectionChange(value, environments: environments)
if value != .settings {
settingsNavigationPath = NavigationPath()
pendingSettingsPage = nil
return
}
if let page = pendingSettingsPage {
settingsNavigationPath = NavigationPath()
settingsNavigationPath.append(page)
pendingSettingsPage = nil
Task { @MainActor in
viewModel.onSelectionChange(value, environments: environments)
if value != .settings {
settingsNavigationPath = NavigationPath()
pendingSettingsPage = nil
return
}
if let page = pendingSettingsPage {
settingsNavigationPath = NavigationPath()
settingsNavigationPath.append(page)
pendingSettingsPage = nil
}
}
}
.onReceive(environments.openSettings) {
viewModel.openSettings()
Task { @MainActor in viewModel.openSettings() }
}
.onReceive(NotificationCenter.default.publisher(for: .navigateToSettingsPage)) { notification in
guard let page = notification.object as? SettingsPage else { return }