我有一个聊天应用程序。当用户键入时,软键盘会切换。当用户点击“发送”时,键盘消失。然后他必须再次点击发送,点击按钮进行注册。
只要键盘可见,页面上的按钮或任何东西都不起作用。点击任意位置,它会隐藏键盘,一切都会重新工作。
我该如何规避? (不,甚至函数的处理程序也没有被调用,所以我不能在按钮点击时禁用键盘......)
答案 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 .
});
这样,当点击发送按钮时键盘不会关闭,您可以通过消息中心触发事件。