C# Monotouch/Xamarin - EntryElement ShouldChangeCharacters E

本文关键字:EntryElement ShouldChangeCharacters Xamarin Monotouch | 更新日期: 2023-09-27 18:20:22

关于如何在单点触控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....

C# Monotouch/Xamarin - EntryElement ShouldChangeCharacters E

您几乎已经拥有了它,只需将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....