0

Does anyone have a code sample or any advice on how I can implement the ShouldChangeCharacters event on the monotouch EntryElement class?

Presumably I need to inherit EntryElement and implement a UITextField (which has the ShouldChangeCharacters event).....but I don't have much experience in exposing events when inheriting classes etc.

It seems that I should be doing the following, but how do I expose this ShouldChangeCharacters event?

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;
    }

}

Essentially I want to be able to type:

MyEntryElement test = new MyEntryElement ();
        test.ShouldChangeCharacters += etc....
Stephane Delcroix
  • 16,134
  • 5
  • 57
  • 85
Goober
  • 13,146
  • 50
  • 126
  • 195

1 Answers1

2

You almost have it, just make field a class-level variable, and make a public property for it. You could also just make a property for an event, and give that to the field, but I think that is slightly more complicated.

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; }
    }

}

Now you can do this:

MyEntryElement test = new MyEntryElement ();
test.Field.ShouldChangeCharacters += etc....
therealjohn
  • 2,378
  • 3
  • 23
  • 39