diff --git a/Packages/vChewing_CocoaExtension/Sources/CocoaExtension/CocoaExtension_NSView.swift b/Packages/vChewing_CocoaExtension/Sources/CocoaExtension/CocoaExtension_NSView.swift index cf39cbe8..98ed0656 100644 --- a/Packages/vChewing_CocoaExtension/Sources/CocoaExtension/CocoaExtension_NSView.swift +++ b/Packages/vChewing_CocoaExtension/Sources/CocoaExtension/CocoaExtension_NSView.swift @@ -148,6 +148,7 @@ public extension NSStackView { static func buildSection( _ orientation: NSUserInterfaceLayoutOrientation = .vertical, + spacing: CGFloat? = nil, width: CGFloat? = nil, withDividers: Bool = true, @ArrayBuilder views: () -> [NSView?] @@ -166,7 +167,7 @@ public extension NSStackView { itemWidth = (width - splitterDelta) / CGFloat(viewsRendered.count) - 6 } func giveViews() -> [NSView?] { viewsRendered } - let result = build(orientation, divider: withDividers, width: itemWidth, views: giveViews)? + let result = build(orientation, divider: withDividers, spacing: spacing, width: itemWidth, views: giveViews)? .withInsets(.new(all: 4)) return result } @@ -174,6 +175,7 @@ public extension NSStackView { static func build( _ orientation: NSUserInterfaceLayoutOrientation, divider: Bool = false, + spacing: CGFloat? = nil, width: CGFloat? = nil, height: CGFloat? = nil, insets: NSEdgeInsets? = nil, @@ -185,7 +187,7 @@ public extension NSStackView { .makeSimpleConstraint(.height, relation: .equal, value: height) } guard !result.isEmpty else { return nil } - return result.stack(orientation, divider: divider)?.withInsets(insets) + return result.stack(orientation, divider: divider, spacing: spacing)?.withInsets(insets) } func withInsets(_ newValue: NSEdgeInsets?) -> NSStackView { @@ -198,6 +200,7 @@ public extension Array where Element == NSView { func stack( _ orientation: NSUserInterfaceLayoutOrientation, divider: Bool = false, + spacing: CGFloat? = nil, insets: NSEdgeInsets? = nil ) -> NSStackView? { guard !isEmpty else { return nil } @@ -212,6 +215,7 @@ public extension Array where Element == NSView { if #unavailable(macOS 10.10) { outerStack.spacing = Swift.max(1, outerStack.spacing) - 1 } + outerStack.spacing = spacing ?? outerStack.spacing outerStack.setHuggingPriority(.fittingSizeCompression, for: .horizontal) outerStack.setHuggingPriority(.fittingSizeCompression, for: .vertical) diff --git a/Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsCocoa/VwrSettingsPaneCocoaPhrases.swift b/Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsCocoa/VwrSettingsPaneCocoaPhrases.swift index 1ff15c24..3d06e2ff 100644 --- a/Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsCocoa/VwrSettingsPaneCocoaPhrases.swift +++ b/Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsCocoa/VwrSettingsPaneCocoaPhrases.swift @@ -65,7 +65,7 @@ public extension SettingsPanesCocoa { NSStackView.build(.vertical, insets: .new(all: 14)) { NSStackView.buildSection(width: contentWidth) { NSStackView.build(.vertical) { - NSStackView.build(.horizontal) { + NSStackView.build(.horizontal, spacing: 4) { cmbPEInputModeMenu cmbPEDataTypeMenu NSView()