创建 NSView 的子类以启用 setTag()

create a subclass of NSView to enable setTag()

我正在使用 xamarin 开发一个 Mac 应用程序,我想在我的程序中的某处设置 NSView 的标签。但是,标签 属性 对于 NSView 是只读的,因此我正在寻找一种方法来创建标签可写的子类。关于我应该如何编写子类有什么建议吗?谢谢

public class MyNSView : NSView
{
    public nint _tag;

    public new nint Tag
    {
        get
        {
            return _tag;
        }
        set
        {
            _tag = value;
        }
    }

请注意,这不再是 NSView 标签。

使用您的自定义 NSView 标签

var view = new MyNSView ();

view.Tag = 100;

我找到了让 viewWithTag 正常工作的解决方法:

@IBInspectable
override var tag: Int {
    get { return super.tag  }
    set { super.tag = newValue } 
}

在IB中,NSView的Tag还是灰色的,但是也有一个子类的Tag可以设置值。

尽管如此,尽我最大的努力,我找不到在 IB 中将 Tag 灰显的合乎逻辑的原因。