我想将ValueTransformer添加到cocoa绑定中。 我创建了一个ValueTransformer类,但它在IB中不可见。 当在IB中添加为ValueTransformer时,应用程序将在开始时崩溃
.range("C10:C25").formula = _
"=SUMIF('Site Data '!$CR:$CR, $B$1, INDEX('Site Data '!$CU:$DJ, 0, ROW(1:1)))"
无法找到名称为myTransformer的值变换器
我错过了什么吗?
谢谢!
答案 0 :(得分:1)
首先,将值转换器名称注册到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
答案 1 :(得分:0)
您需要在初始化代码中将值转换器类添加到控制器类。 然后,您将在界面构建器中的正确位置找到您的值变换器。它将在Interface Builder之后立即显示:
您需要以正确的方式编写值转换器。 Check this out。
值变换器通常由应用程序的委托类注册,以响应接收initialize:class消息。这允许在应用程序启动过程的早期进行注册,从而在nib文件加载时提供对值转换器的访问。
希望它有所帮助。