一种适用于 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 许可证 获得。

GitHub

点击跳转