聚焦搜索框时不显示键盘

本文关键字:显示 键盘 搜索 聚焦 | 更新日期: 2023-09-27 18:32:01

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

我该怎么做?

谢谢大家。

聚焦搜索框时不显示键盘

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

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

由于 Xamarin.Forms API 不会在 SearchBar 类上公开 Keyboard 属性,因此可以编写自定义呈现器。iOS 实现可以在OnElementChanged覆盖中使用ResignFirstResponder来防止键盘显示:

[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();
                }
            }
        }
    }
}