我有一个sublass abszisse nsview。它可以按预期工作,但我无法为其设置标签,在编程性上也不是在故事板上,默认值为-1是灰色的。
class Abszisse: NSView{
override var tag = 0
...
错误是Cannot override with a stored property 'tag'
文档说要重新定义该属性为Readonly,但我找不到任何方法。可能很简单。在Objective-C中,这不是问题。在
中的答案中,还有其他可能性创建一个NSView子类以启用Settag((
在Swift中,您不能直接覆盖属性的权限,但是您可以在自定义的固定器和Getters中做任何您喜欢的事情:
Swift 4.0
var _tag = -1
override var tag: Int {
get {
return _tag
}
set {
_tag = newValue
}
}
注意:_tag
只是一个暗示私有化的变量名称,但它可能是您喜欢的任何其他名称,并且不必在开始时具有下划线。