diff --git a/phpmon/Domain/Menu/StatusMenu+Items.swift b/phpmon/Domain/Menu/StatusMenu+Items.swift index 2de18f1..07a28d7 100644 --- a/phpmon/Domain/Menu/StatusMenu+Items.swift +++ b/phpmon/Domain/Menu/StatusMenu+Items.swift @@ -19,8 +19,9 @@ extension StatusMenu { } addItem(HeaderView.asMenuItem( - text: "\("mi_php_version".localized) \(PhpEnv.phpInstall.version.long)") - ) + text: "\("mi_php_version".localized) \(PhpEnv.phpInstall.version.long)", + minimumWidth: 280 // this ensures the menu is at least wide enough not to cause clipping + )) } func addPhpActionMenuItems() { diff --git a/phpmon/Domain/SwiftUI/Menu/HeaderView.swift b/phpmon/Domain/SwiftUI/Menu/HeaderView.swift index 430ed33..b61f08f 100644 --- a/phpmon/Domain/SwiftUI/Menu/HeaderView.swift +++ b/phpmon/Domain/SwiftUI/Menu/HeaderView.swift @@ -26,11 +26,17 @@ struct HeaderView: View { static func asMenuItem( text: String, - width: Int? = nil + minimumWidth: CGFloat? = nil ) -> NSMenuItem { let view = NSHostingView(rootView: Self(text: text)) view.autoresizingMask = [.width, .height] - view.setFrameSize(CGSize(width: view.frame.width, height: 24)) + + var finalWidth = view.frame.width + if minimumWidth != nil && minimumWidth! > finalWidth { + finalWidth = minimumWidth! + } + + view.setFrameSize(CGSize(width: finalWidth, height: 24)) let item = NSMenuItem() item.view = view