在NSTextFieldCell

时间:2016-11-21 21:58:21

标签: swift macos swift3 units-of-measurement

我希望能够很好地使用Measurement and MeasurementFormatter来输出和输入NSTextFieldCell。

我能够正确显示测量结果......

let areaFormatter = MeasurementFormatter()
areaFormatter.unitStyle = .medium 
areaFormatter.unitOptions = .providedUnit

let area = Measurement<UnitArea>( value: 123.43, unit: .squareInches)

let editInput = NSTextFieldCell

editInput.objectValue = area
editInput.formatter = areaFormatter

显示类似

的内容
123.43 in^2

当我想用

重新阅读时,问题就出现了
var inputArea = editInput.objectValue as! Measurement<UnitArea>

我认为因为没有定义Measurement Formatter的get Object值。

open func getObjectValue(_ obj: AutoreleasingUnsafeMutablePointer<AnyObject?>?, for string: String, errorDescription error: AutoreleasingUnsafeMutablePointer<NSString?>?) -> Bool

我的理解是否正确?在Swift中是否有任何为测量定义此功能的例子?

现在,用户可以编辑整个字符串,包括单位中的文本。有没有一种很好的方法来阻止NSTextFieldCell中的单位?我希望用户能够编辑数字而不是单位,然后用

返回测量
var inputArea = editInput.objectValue as! Measurement<UnitArea>

所以这会显示

123.43 in^2

但只能编辑123.43。

0 个答案:

没有答案