使用Xamarin捕获iOS UITextField清除事件

时间:2013-07-20 22:58:35

标签: ios xamarin

我想在按下textview的(x)时执行一些操作(重置搜索)。

像这样:iPhone perform action when UITextField / UISearchBar's clear button is pressed但我不知道怎么用Xamarin

我有这个:

tbkSearchOrder.ShouldReturn += (textField) => { 
   ComboViewCtl.OnOrdersFiltered (this, tbkSearchOrder.Text);
   return true; 
};

响应键盘上按下的“搜索”按钮。 UITextField有几个类似的方法,但它们是方法,而不是事件或操作或委托。理想情况下,我会避免为该文本字段编写一个大的Delegate类。

2 个答案:

答案 0 :(得分:7)

它们是方法,因为它们实际返回一个值。 C#事件只是接收objet发送的事件的一种方式。

当UITextField启动时(显示键盘且对象已准备好管理输入事件),将发送事件Started。您可以使用此清除UITextField

UITextField textField = new UITextField();
textField.Started += delegate {
     textField.Text = null;
};

用于处理清除按钮上的点击(遗憾的是这不是一个事件,但如果委托返回true,TextField将被清除):

UITextField textField = new UITextField();
textField.ShouldClear += delegate {
    // Insert the handling here
    return true;
};

答案 1 :(得分:4)

            this.sampleTextField1.ShouldReturn += (textField) => {
                sampleTextField2.BecomeFirstResponder ();
                textField.ResignFirstResponder ();
                return true;
            };

            this.sampleTextField1.ShouldBeginEditing += (textField) => {
                //Write here
                return true;
            };

            this.sampleTextField1.ShouldEndEditing += (textField) => {
                //Write here
                return true;
            };
            this.sampleTextField1.ShouldClear += (textField) => {
                //Write here
                return true;
            };

            this.sampleTextField1.ShouldChangeCharacters = (UITextField txt, NSRange range, string sampleTxt) => {
                var newLength = txt.Text.Length + sampleTxt.Length - range.Length;
                return newLength <= 9;

            };