我有一个借助IBInspectables
设计的自定义UI元素,因此我可以在Interface Builder中使用和修改它。有2个可检查对象可以有效地更改元素的相同属性,但方式稍有不同。
在屏幕快照中,有title
设置元素的标题,还有locTitleKey
通过键获取NSLocalizedString
并将其设置为标题。
正如我从将不同的值传递给这些可检查对象所看到的:
locTitleKey
,并且title
为空,则使用本地化的字符串title
并忽略本地化的内容问题-这种行为可以预测吗?
换句话说,我可以安全地假设对IBInspectables
的求值顺序始终是相同的吗? ({title
,然后locTitleKey
)
为了提供更多的上下文,这里是所使用的代码片段。
title
在类本身的范围内定义:
@IBDesignable
class StandardInputField: UIView, NibLoadable {
//...
@IBInspectable
public var title: String? {
didSet {
titleLabel.text = title
}
}
//...
}
并且locTitleKey
被定义为扩展名:
extension StandardInputField {
@IBInspectable var locTitleKey: String? {
get {
return nil
}
set(key) {
title = key?.localized
}
}
}