聚焦搜索框时不显示键盘

时间:2016-01-27 10:48:29

标签: c# keyboard hide xamarin.forms

我正在开发一个应用程序(在Xamarin.Forms中),它将与外部条形码扫描仪一起使用,因此我不需要显示触觉键盘我把焦点放在一个条目/搜索框/等等。

我该怎么做?

谢谢你们。

1 个答案:

答案 0 :(得分:0)

假设您从不希望键盘永远不会在Entry上显示,您可以在Entry的构造函数中将Keyboard属性设置为null

var scannerEntry = new Entry
{
    Keyboard = null,
    Placeholder = "Scan an item"
};

由于Xamarin.Forms API未在Keyboard类上公开SearchBar属性,因此您可以编写custom renderer。 iOS实现可以使用ResignFirstResponder覆盖中的OnElementChanged来阻止键盘显示:

[assembly: ExportRenderer(typeof(ScannerSearchBar), typeof(ScannerSearchBardRenderer))]
namespace HideKeyboard.iOS
{
    public class ScannerSearchBarRenderer : SearchBarRenderer
    {
        protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.SearchBar> e)
        {
            base.OnElementChanged(e);
            if (Control != null)
            {
                if (Focused)
                {
                    ResignFirstResponder();
                }
            }
        }
    }
}