【发布时间】:2020-06-04 16:08:48
【问题描述】:
我目前正在尝试调整 Xamarin.Forms iOS SearchBar 以在向搜索栏添加文本时显示“取消”按钮(不是通过键盘,而是通过类别单击)。我用下面的代码成功地做到了这一点。现在的问题是,我希望“取消”按钮一旦出现就可以点击。
目前我正在做以下事情:
单击更改搜索栏文本的命令 -> 有效
显示取消按钮 -> 有效
取消按钮是可点击的 -> 不起作用。它是灰色的。我需要点击搜索栏(这样键盘才会出现)让它变成蓝色并且可以点击。
这是我的代码:
[assembly: ExportRenderer(typeof(CustomSearchBar), typeof(SearchBar_iOS))]
namespace Project.iOS.Renderers
{
public class SearchBar_iOS : SearchBarRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.SearchBar> e)
{
base.OnElementChanged(e);
var element = e.NewElement as CustomSearchBar;
if (Control != null && element != null)
{
this.Control.TextChanged += (s, ea) =>
{
//if (ea.SearchText == "")
this.Control.ShowsCancelButton = true;
};
this.Control.OnEditingStarted += (s, ea) => //when control receives focus
{
this.Control.ShowsCancelButton = true;
};
this.Control.OnEditingStopped += (s, ea) => //when control looses focus
{
this.Control.ShowsCancelButton = false;
};
Control.BackgroundColor = Color.Transparent.ToUIColor();
Control.Layer.CornerRadius = 10;
Control.ClipsToBounds = true;
Control.SearchBarStyle = UISearchBarStyle.Minimal;
}
}
在我的渲染器中是否有一个调用可以在添加文本时强制它成为可点击的?
【问题讨论】:
标签: c# xamarin xamarin.forms xamarin.ios