xamarin.forms IOS 键盘禁用后退页面,直到隐藏键盘

时间:2021-06-18 13:13:04

标签: xamarin.forms

我有一个聊天应用程序。当用户键入时,软键盘会切换。当用户点击“发送”时,键盘消失。然后他必须再次点击发送,点击按钮进行注册。

只要键盘可见,页面上的按钮或任何东西都不起作用。点击任意位置,它会隐藏键盘,一切都会重新工作。

我该如何规避? (不,甚至函数的处理程序也没有被调用,所以我不能在按钮点击时禁用键盘......)

1 个答案:

答案 0 :(得分:0)

我们可以在点击键盘上的发送按钮时覆盖该事件。

为 Entry/Editor 创建自定义渲染器。


[assembly: ExportRenderer(typeof(Entry), typeof(MyRenderer))]
namespace FormsApp.iOS
{

    class MyDelegate : UITextFieldDelegate
    {
        public override bool ShouldReturn(UITextField textField)
        {
            MessagingCenter.Send<object>(this, "Hi");
            return false;
        }
    }
    class MyRenderer : EntryRenderer
    {
        protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
        {
            base.OnElementChanged(e);

            if(Control != null)
            {
                Control.Delegate = new MyDelegate();
            }
        }
    }
}

表单

MessagingCenter.Subscribe<object>(this, "Hi",(sender)=>{ 
         // do something .    
});

这样,当点击发送按钮时键盘不会关闭,您可以通过消息中心触发事件。