我想将 ValueTransformer 添加到 cocoa 绑定(bind)中。 我创建了一个 ValueTransformer 类,但它在 IB 中不可见。 当在 IB 中添加为 ValueTransformer 时,应用程序将在启动时崩溃
class myTransformer: ValueTransformer {
override func valueClassForBinding(_ binding: String) -> AnyClass? {
return NSString.self
}
override func transformedValue(_ value: Any?) -> Any? {
return "test"
}
}
Cannot find value transformer with name myTransformer
我错过了什么吗?
谢谢!
最佳答案
首先,将您的值转换器名称注册到 NSValueTransformerName。
extension
NSValueTransformerName {
static let myTransformerName = NSValueTransformerName( rawValue: "myTransformer")
}
然后在程序的最开始注册您的值转换器,即 AppDelegate 的初始化程序。
@NSApplicationMain class
AppDelegate: NSObject, NSApplicationDelegate {
override
init() {
super.init()
ValueTransformer.setValueTransformer( myTransformer(), forName: .myTransformerName )
}
}
https://developer.apple.com/documentation/foundation/valuetransformer
关于swift - 在 Swift 中添加 ValueTransformer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42632442/