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

时间:2017-06-05 21:20:10

标签: macos xamarin nsview xamarin.mac

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

2 个答案:

答案 0 :(得分:0)

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;

答案 1 :(得分:0)

我找到了一种解决方法来使viewWithTag工作:

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

在IB中,NSView的标签仍然显示为灰色,但是还有一个子类的标签可用于设置值。

尽我所能,我找不到在IB中将Tag变灰的逻辑原因。