一种适用于 Cocoa 的 NSColorWell 和适用于 SwiftUI 的 ColorPicker 的多功能选项
ColorWellKit
适用于 Cocoa 的 NSColorWell
和适用于 SwiftUI 的 ColorPicker
的多功能替代方案。
ColorWellKit 的设计是为了模仿 macOS 13 Ventura 中引入的调色板设计的外观和行为,非常适合在无法定位最新 SDK 的应用中使用。虽然 ColorWellKit 的中心目标是保持与其外观和行为类似于 Apple 的设计,但它并不打算成为一个完全的克隆。从处理系统颜色方式到投影大小,存在许多细微的设计差异。但是,实际上,几乎没有值得注意的差异:
安装
将下列依赖项添加到 Package.swift
文件中:
.package(url: "https://github.com/jordanbaird/ColorWellKit", from: "0.1.0")
用法
SwiftUI
创建 ColorWellView
并将其添加到视图层次结构。有许多初始值设定项和修饰符可供选择,便于设置调色板的颜色、标签和样式。
import SwiftUI
import ColorWellKit
struct ContentView: View {
@Binding var fontColor: Color
var body: some View {
VStack {
ColorWellView("Font Color", selection: $fontColor)
.colorWellStyle(.expanded)
MyCustomTextEditor(fontColor: fontColor)
}
}
}
Cocoa
使用其中一个可用初始值设定项创建 ColorWell
。使用你喜欢的设计模式响应颜色变化。
import Cocoa
import ColorWellKit
class ContentViewController: NSViewController {
@IBOutlet var textControls: NSStackView!
@IBOutlet var textEditor: MyCustomNSTextEditor!
private var colorObservation: NSKeyValueObservation?
override func viewDidLoad() {
let colorWell = ColorWell(style: .expanded)
colorWell.color = textEditor.fontColor
colorObservation = colorWell.observe(\.color) { colorWell, _ in
textEditor.fontColor = colorWell.color
}
textControls.addArrangedSubview(colorWell)
}
}
许可证
ColorWellKit 可根据 MIT 许可证 获得。