32 lines
811 B
Swift
32 lines
811 B
Swift
|
//
|
||
|
// NumberHertzToStringTransformer.swift
|
||
|
// Cog
|
||
|
//
|
||
|
// Created by Christopher Snowhill on 6/29/22.
|
||
|
//
|
||
|
|
||
|
import Cocoa
|
||
|
|
||
|
@objc(NumberHertzToStringTransformer)
|
||
|
public final class NumberHertzToStringTransformer: ValueTransformer {
|
||
|
fileprivate static var floatFormatter: NumberFormatter {
|
||
|
let formatter = NumberFormatter()
|
||
|
formatter.maximumFractionDigits = 2
|
||
|
formatter.minimumFractionDigits = 0
|
||
|
formatter.minimumIntegerDigits = 1
|
||
|
formatter.roundingIncrement = 0.5
|
||
|
formatter.usesGroupingSeparator = true
|
||
|
formatter.groupingSeparator = ","
|
||
|
formatter.groupingSize = 3
|
||
|
return formatter
|
||
|
}
|
||
|
|
||
|
override public func transformedValue(_ value: Any?) -> Any? {
|
||
|
if let value = value as? NSNumber {
|
||
|
return "\(NumberHertzToStringTransformer.floatFormatter.string(from: value)!) Hz"
|
||
|
}
|
||
|
|
||
|
return nil
|
||
|
}
|
||
|
}
|