我正在使用 SwiftUI,并希望在使用 ColorPicker 选择颜色后立即将其保存到 UserDefaults 中。做这个的最好方式是什么?
struct CustomizeView: View {
@State private var color: Color = Color.green
var body: some View {
ColorPicker("Select a color!", selection: $color, supportsOpacity: false)
}.onAppear {
guard let defaults = UserDefaults(suiteName: "...") else { return }
color = Color(rgb: defaults.integer(forKey: "color"))
}
}
// where do I call the saveColors() function?
func saveColors() {
guard let defaults = UserDefaults(suiteName: "...") else { return }
defaults.set(color.rgb, forKey: "colorCancel")
defaults.synchronize()
}
}
Run Code Online (Sandbox Code Playgroud)
(颜色的 rgb 初始值设定项是自定义的,不应该相关。)
您可以使用onChange修饰符,例如
ColorPicker("Select a color!", selection: $color, supportsOpacity: false)
.onChange(of: color) { _ in
saveColors()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
828 次 |
| 最近记录: |