From bb00d4379faff5b2ba41ea819410265a0dcee2bc Mon Sep 17 00:00:00 2001 From: vgearen Date: Thu, 14 May 2026 11:12:45 +0800 Subject: [PATCH] fix(ui): force panel relayout when switching between list/settings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit MenuBarExtra(.window) caches the NSPanel size from list mode (~720 with many stocks) and does not auto-shrink when switching to the 480-tall settings view, leaving a large blank gap. Adding .id(showSettings) tells SwiftUI to rebuild the view subtree on mode change, prompting the panel to recompute its size from the new content. release: 1.3.3 → 1.3.4 --- StockMonitor.xcodeproj/project.pbxproj | 8 ++++---- StockMonitor/Views/DropdownView.swift | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/StockMonitor.xcodeproj/project.pbxproj b/StockMonitor.xcodeproj/project.pbxproj index 1020bf4..72782e1 100644 --- a/StockMonitor.xcodeproj/project.pbxproj +++ b/StockMonitor.xcodeproj/project.pbxproj @@ -339,7 +339,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 13.5; - MARKETING_VERSION = 1.3.3; + MARKETING_VERSION = 1.3.4; PRODUCT_BUNDLE_IDENTIFIER = com.vgearen.Stockbar; PRODUCT_NAME = "$(TARGET_NAME)"; REGISTER_APP_GROUPS = YES; @@ -373,7 +373,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 13.5; - MARKETING_VERSION = 1.3.3; + MARKETING_VERSION = 1.3.4; PRODUCT_BUNDLE_IDENTIFIER = com.vgearen.Stockbar; PRODUCT_NAME = "$(TARGET_NAME)"; REGISTER_APP_GROUPS = YES; @@ -393,7 +393,7 @@ CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.3.3; + MARKETING_VERSION = 1.3.4; PRODUCT_BUNDLE_IDENTIFIER = com.vgearen.StockbarTests; PRODUCT_NAME = "$(TARGET_NAME)"; STRING_CATALOG_GENERATE_SYMBOLS = NO; @@ -412,7 +412,7 @@ CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.3.3; + MARKETING_VERSION = 1.3.4; PRODUCT_BUNDLE_IDENTIFIER = com.vgearen.StockbarTests; PRODUCT_NAME = "$(TARGET_NAME)"; STRING_CATALOG_GENERATE_SYMBOLS = NO; diff --git a/StockMonitor/Views/DropdownView.swift b/StockMonitor/Views/DropdownView.swift index a3e1f76..68630ec 100644 --- a/StockMonitor/Views/DropdownView.swift +++ b/StockMonitor/Views/DropdownView.swift @@ -105,5 +105,6 @@ struct DropdownView: View { .frame(width: 320) .fixedSize(horizontal: false, vertical: true) .background(Color(nsColor: .windowBackgroundColor)) + .id(showSettings) } }