3

当按下文本视图的 (x) 时,我想执行一些操作(重置搜索)。

像这样:iPhone 在按下 UITextField / UISearchBar 的清除按钮时执行操作,但我不知道如何使用 Xamarin

我有这个:

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

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

4

2 回答 2

8

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

当 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;
};
于 2013-07-22T16:44:09.200 回答
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;

            };
于 2016-03-22T06:54:36.950 回答