Swift 如何将NSNumberFormatter子类化
我有一个用Swift编写的macOS应用程序,其中一些NSTextFields绑定到NSNumbers和NSNumberFormatters 由于我需要为这些数字设置特殊格式,我尝试创建一个自定义NSNumberFormatter:Swift 如何将NSNumberFormatter子类化,swift,macos,interface-builder,nsnumberformatter,Swift,Macos,Interface Builder,Nsnumberformatter,我有一个用Swift编写的macOS应用程序,其中一些NSTextFields绑定到NSNumbers和NSNumberFormatters 由于我需要为这些数字设置特殊格式,我尝试创建一个自定义NSNumberFormatter: class CustomNumberFormatter: NSNumberFormatter { override func number(from string: String) -> NSNumber? { .... }
class CustomNumberFormatter: NSNumberFormatter {
override func number(from string: String) -> NSNumber? {
....
}
override func string(from number: NSNumber) -> String? {
....
}
}
关键是我收到了以下错误消息:
“NSNumberFormatter”已重命名为“NumberFormatter”
我尝试将NumberFormatter子类化,但在这种情况下,在情节提要中看不到CustomNumberFormatter
我错过了什么
先谢谢你 如果我从
NumberFormatter
中创建子类,它似乎工作得很好。将其放入故事板进行测试,效果良好。注意,模块与项目“Tester2”匹配,因此它选择了正确的类。我在macOS 10.15上使用的是Xcode 11.3(11C29),如果这有区别的话
我希望能够从下拉列表框中选择CustomNumberFormatter类,该列表框为空 手动写入类名解决了这个问题
我不知道这是否是预期的行为,但它起了作用。嗨,卢卡斯,谢谢你的回答。我使用的是完全相同的开发环境,但1)CustomNumberFormatter在类中不可见,2)“Module”为空,而“Inherit Module From Target”被取消选择并禁用。有什么想法吗?@Fab我不太确定会有什么不同。可能该类不是同一编译目标的一部分?如果你想尝试在GitHub上发布一个项目,或者复制这个问题,我可以在我这边试试。对不起,我不知道会出什么问题。只是出于好奇:你为什么会这样?