一个通用的替代品,用于 Cocoa 的 NSColorWell
和 SwiftUI 的 ColorPicker
。
ColorWellKit 旨在模仿 macOS 13 Ventura 中引入的颜色选择器的外观和行为,非常适合用于无法面向最新 SDK 的应用程序。虽然 ColorWellKit 的核心目标是保持与 Apple 设计相似的外观和行为,但它并非旨在成为一个完全相同的克隆。从系统颜色的处理方式到阴影的大小,存在许多细微的设计差异。在实践中,显著的差异非常少。
将以下依赖项添加到您的 Package.swift
文件中
.package(url: "https://github.com/jordanbaird/ColorWellKit", from: "1.1.2")
创建一个 ColorWell
并将其添加到您的视图层级结构中。 有多种初始化器和修饰符可供选择,允许您设置颜色选择器的颜色、标签和样式。
import SwiftUI
import ColorWellKit
struct ContentView: View {
@Binding var textColor: Color
var body: some View {
VStack {
ColorWell("Text Color", selection: $textColor)
.colorWellStyle(.expanded)
MyCustomTextEditor(textColor: $textColor)
}
}
}
使用可用的初始化器之一创建 CWColorWell
,或者使用 IBOutlet
来创建与 Storyboard 或 NIB 文件的连接。 使用您首选的设计模式来响应颜色变化。
import Cocoa
import ColorWellKit
class ViewController: NSViewController {
@IBOutlet var colorWell: CWColorWell!
@IBOutlet var textEditor: NSTextView!
override func viewDidLoad() {
colorWell.style = .expanded
if let textColor = textEditor.textColor {
colorWell.color = textColor
}
}
@IBAction func updateTextColor(sender: CWColorWell) {
textEditor.textColor = sender.color
}
}
ColorWellKit 在 MIT 许可下可用。