Issue #629

Use Picker with SegmentedPickerStyle.

Picker(selection: $preferenceManager.preference.display, label: EmptyView()) {
    Image("grid")
        .resizable()
    .padding()
        .tag(0)
    Image("list")
        .resizable()
        .tag(1)
}.pickerStyle(SegmentedPickerStyle())
.frame(width: 50)
.padding(.leading, 16)
.padding(.trailing, 24)

Alternatively, we can make custom NSSegmentedControl

import AppKit
import SwiftUI

struct MySegmentControl: NSViewRepresentable {
    func makeCoordinator() -> MySegmentControl.Coordinator {
        Coordinator(parent: self)
    }

    func makeNSView(context: NSViewRepresentableContext<MySegmentControl>) -> NSSegmentedControl {
        let control = NSSegmentedControl(
            images: [
                NSImage(named: NSImage.Name("grid"))!,
                NSImage(named: NSImage.Name("list"))!
            ],
            trackingMode: .selectOne,
            target: context.coordinator,
            action: #selector(Coordinator.onChange(_:))
        )
        return control
    }

    func updateNSView(_ nsView: NSSegmentedControl, context: NSViewRepresentableContext<MySegmentControl>) {

    }

    class Coordinator {
        let parent: MySegmentControl
        init(parent: MySegmentControl) {
            self.parent = parent
        }

        @objc
        func onChange(_ control: NSSegmentedControl) {

        }
    }
}