C#Monotouch / Xamarin - EntryElement ShouldChangeCharacters事件

时间:2013-06-30 10:49:56

标签: c# xamarin.ios xamarin monotouch.dialog entryelement

有没有人有关于如何在monotouch EntryElement类上实现ShouldChangeCharacters事件的代码示例或任何建议?

据推测,我需要继承EntryElement并实现一个UITextField(它具有ShouldChangeCharacters事件).....但我在继承类等时没有太多暴露事件的经验。

似乎我应该执行以下操作,但是如何公开此ShouldChangeCharacters事件?

using MonoTouch.Dialog;
using MonoTouch.UIKit;

class MyEntryElement : EntryElement 
{

    protected override UITextField CreateTextField(RectangleF frame)
    {
        var field = base.CreateTextField(frame);

        //How do I expose this?
        //field.ShouldChangeCharacters

        return field;
    }

}

基本上我希望能够输入:

MyEntryElement test = new MyEntryElement ();
        test.ShouldChangeCharacters += etc....

1 个答案:

答案 0 :(得分:2)

你几乎拥有它,只需使field成为类级变量,并为它创建一个公共属性。您也可以为事件创建一个属性,并将其提供给该字段,但我认为这稍微复杂一些。

class MyEntryElement : EntryElement 
{
    UITextField field; // Class-level variable
    protected override UITextField CreateTextField(RectangleF frame)
    {
        field = base.CreateTextField(frame);

        //How do I expose this?
        //field.ShouldChangeCharacters

        return field;
    }

    public UITextField Field {
        get { return field; }
    }

}

现在你可以这样做:

MyEntryElement test = new MyEntryElement ();
test.Field.ShouldChangeCharacters += etc....