我想在按下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类。
答案 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;
};