12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- //
- // KMSignature.swift
- // PDF Master
- //
- // Created by lizhe on 2023/10/9.
- //
- import Cocoa
- @objc enum KMPDFSignatureType: Int {
- case ink = 0
- case text
- case image
- }
- @objc enum KMPDFSignature: Int {
- case managerView = 0
- case createView
- }
- @objcMembers class KMSignature: NSObject, NSCoding {
- private let kPathKey = "Paths"
- private let kColorKey = "Color"
- private let kImageKey = "Image"
- private let kTypeKey = "Type"
- var signatureColor: NSColor = .black
- var paths: [NSBezierPath] = []
- var pathsImage: NSImage = NSImage()
-
- var signatureType: KMPDFSignatureType = .text
- var isSelect: Bool = false
- override init() {
- super.init()
- }
- func addPath(_ path: NSBezierPath) {
- paths.append(path)
- }
- func removePath(_ path: NSBezierPath) {
- if let index = paths.firstIndex(of: path) {
- paths.remove(at: index)
- }
- }
- func clearPath() {
- paths.removeAll()
- }
- // MARK: - NSCoding
- required init?(coder decoder: NSCoder) {
- if let decodedPaths = decoder.decodeObject(forKey: kPathKey) as? [NSBezierPath],
- let decodedColor = decoder.decodeObject(forKey: kColorKey) as? NSColor,
- let decodedImage = decoder.decodeObject(forKey: kImageKey) as? NSImage,
- let decodedType = decoder.decodeObject(forKey: kTypeKey) as? NSNumber {
- paths = decodedPaths
- signatureColor = decodedColor
- pathsImage = decodedImage
- signatureType = KMPDFSignatureType.init(rawValue: decodedType.intValue) ?? .text
- }
- }
- func encode(with encoder: NSCoder) {
- encoder.encode(paths, forKey: kPathKey)
- encoder.encode(signatureColor, forKey: kColorKey)
- encoder.encode(pathsImage, forKey: kImageKey)
- encoder.encode(NSNumber(integerLiteral: signatureType.rawValue), forKey: kTypeKey)
- }
- }
|