如何在xamarin ios中创建一个类别?

时间:2017-06-17 18:59:02

标签: c# ios xamarin xamarin.ios uistoryboard

我想在UITextfield类中添加一些方法以及IBInspectable和IBDesignable属性。我可以在Objective-C中做到这一点,但我没有找到在Xamarin / C#中做同样事情的方法。任何人都可以帮我这样做吗?

感谢您的提前时间。

1 个答案:

答案 0 :(得分:1)

在Xamarin中(实际上这是在C#上),您在Objective-C中所知的Category被称为Extension Methods

扩展方法允许您向类添加功能而无需对其进行子类化,正如您可能已经想象的那样。

因此,例如,如果要向UILabel类添加方法以检查null并将空白添加到text属性中,则可以执行以下操作:

public static class UILabelExtensionMethod
{
    public static bool TextIsNullOrEmpty (this UILabel label)
    {
        return string.IsNullOrEmpty (label?.Text);
    }
}

现在有了上述内容,您可以在任何UILabel对象上调用该方法

var myLabel = new UILabel ();

var isEmpty = myLabel.TextIsNullOrEmpty ();

但是,扩展方法不能与IBInspectableIBDesignable注释一起使用。这些注释仅在子类化时可用,而@Demitrian表示这称为Custom Controls

希望这会有所帮助.-