Sync app menu bar visibility state with macOS 15 system controls #1029
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
macOS 15 introduced system-level menu bar icon controls (Settings > Desktop & Dock > Menu Bar). When the system toggles Easydict's icon to visible, the app's internal
hideMenuBarIconsetting remains stale, causing state desync.Changes
onAppearhandler to MenuBarExtra label that detects system-initiated visibility changeshideMenuBarIconis true, sync internal state to false@available(macOS 15.0, *)for backward compatibilityImplementation
The fix leverages SwiftUI's lifecycle: when macOS system settings make the icon visible,
onAppearfires on the label, triggering the sync. No polling required.Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.