我想在UITextfield类中添加一些方法以及IBInspectable和IBDesignable属性。我可以在Objective-C中做到这一点,但我没有找到在Xamarin / C#中做同样事情的方法。任何人都可以帮我这样做吗?
感谢您的提前时间。
答案 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 ();
但是,扩展方法不能与IBInspectable
和IBDesignable
注释一起使用。这些注释仅在子类化时可用,而@Demitrian表示这称为Custom Controls。
希望这会有所帮助.-