在 SwiftUI 中,ColorPicker 是一个内建控件,用于让用户在界面上选择颜色,非常类似于 macOS 的 NSColorWell + NSColorPanel 的组合。
基本用法
@State private var color: Color = .red
var body: some View {
ColorPicker("选择颜色", selection: $color)
}

ColorPicker 的特点
1、跨平台支持:支持 macOS, iOS, iPadOS, visionOS 等。
2、自动管理颜色面板:系统提供颜色选择器,不需手动弹窗。
3、支持绑定 Color 类型:可以直接绑定到 @State 或 @Binding。
4、支持不带标签样式:.labelsHidden() 可隐藏标题文本。
5、不支持 NSColor:只能绑定 SwiftUI.Color,如需桥接需要转化。
@State private var color: NSColor = .red
var body: some View {
ColorPicker("选择颜色", selection: Binding(get: {
Color(nsColor: color)
}, set: { color in
self.color = NSColor(color)
}))
}
总结
ColorPicker 是 SwiftUI 中最方便的颜色选择器,适用于大多数跨平台应用场景,推荐优先使用。如果只面向 macOS 并希望自定义颜色 UI,则可以考虑用 NSColorPanel + NSColorWell 等。