NSColorをUserdefautsに保存する
NSColorPanelで選択された色を保存するためにUserDefaultsを使って保存しようとしたところ
わざわざ、選択された色のRGBとAlphaの値をそれぞれ取得して配列にして保存していたが
もっと簡単な方法があったのでメモ。
参考にしたサイトは以下。
ただ情報が古いので、適宜読みかえ。
コード例
example.swift
import Cocoa
let keyString = "color"
let color = NSColor.red
let colorData = try NSKeyedArchiver.archivedData(withRootObject: color, requiringSecureCoding: false)
let data = NSData(data: colorData)
UserDefaults.standard.set(data, forKey: keyString)
var aColor : NSColor?
var theData = UserDefaults.standard.data(forKey: keyString)
if let data = theData {
aColor = try! NSKeyedUnarchiver.unarchivedObject(ofClass: NSColor.self, from: data)!
}