swift3 macOS设置标签在NSView的子类中



我有一个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只是一个暗示私有化的变量名称,但它可能是您喜欢的任何其他名称,并且不必在开始时具有下划线。

最新更新