Issue #629
Use Picker with SegmentedPickerStyle.
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 
 | 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
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 
 | import AppKitimport 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) {
 
 }
 }
 }
 
 |