2017-06-17 63 views
1

我想將一些方法與IBInspectable和IBDesignable屬性一起添加到UITextfield類。我可以在Objective-C中完成它,但是在Xamarin/C#中找不到同樣的方法。任何人都可以幫助我做到這一點?如何在xamarin ios中創建類別?

感謝您的時間提前。

+0

Xamarin提供一些所謂的'自定義Controls' [這裏](https://developer.xamarin.com/guides/ios/user_interface/designer/ios_designable_controls_overview/),它類似於'IBInspectable'和'IBDesignable'。我想你可以使用它? – Demitrian

回答

0

在Xamarin中(真的這是在C#上)Objective-C中你所知道的Category被稱爲Extension Methods

如您可能已經想象的那樣,擴展方法允許您爲類添加功能而無需對其進行子類化。

因此,舉例來說,如果你想一個方法添加到UILabel類來檢查空和空到文本屬性,你可以做這樣的事情:

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時可用。如圖

希望這helps.-