问题描述
我在 HID 模式下使用移动条码扫描器。我在屏幕上有一个条目,我试图将注意力集中在它上面,这样用户就不会无意中点击其他地方而失去对条目的关注。我尝试通过创建行为并将其附加到我的 ExtendedEntry
来实现此目的,这只是自定义 Entry
,在按下或聚焦时隐藏键盘。
public class HoldFocusBehavior : Behavior<ExtendedEntry>
{
protected override void OnAttachedTo(ExtendedEntry bindable)
{
bindable.Unfocused += Bindable_Unfocused;
bindable.Completed += Bindable_Completed;
base.OnAttachedTo(bindable);
}
protected override void OnDetachingFrom(ExtendedEntry bindable)
{
bindable.Unfocused -= Bindable_Unfocused;
bindable.Completed -= Bindable_Completed;
base.OnDetachingFrom(bindable);
}
private void Bindable_Completed(object sender,System.EventArgs e)
{
if (!((ExtendedEntry)sender).IsFocused)
{
((ExtendedEntry)sender).Focus();
}
}
private void Bindable_Unfocused(object sender,FocusEventArgs e)
{
((ExtendedEntry)sender).Focus();
}
}
但问题是,当您扫描条形码并再次获得焦点时,条目会被阻止,并且您无法使用物理键盘或扫描仪输入任何内容,也无法从条目中删除文本。
当我只使用 Completed
事件时不会发生这种情况,但在这种情况下,用户可以单击其他地方并失去对不得发生的条目的关注。如果我只使用 Unfocused
事件,则在输入条形码后返回焦点但条目被阻止。
事件的顺序是 Unfocused
然后是 Completed
。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)