物理键盘事件挂钩不适用于Xamarin iOS表单中的Master-Detail应用程序

时间:2019-01-26 16:33:44

标签: c# xamarin.forms hid

我需要从HID扫描器(与物理键盘相同)上钩挂事件,以在Master-detail应用程序上以Xamarin形式读取条形码。我的页面上没有任何输入字段。我发现它在Android和UWP上运行良好,但在iOS上却无法运行。

让我解释一下,仅适用于iOS设备,因为它无法正常工作。 (Android和UWP在听按键时没有问题)

  1. 我有Master detail应用。我需要在“详细信息”页面上接收按键事件。
  2. 我的页面上没有任何输入字段。我的输入栏位bcoz不能满足我的要求。
  3. 因此决定在详细信息页面级别监听关键事件
  4. 要挂钩按键事件,我在iOS的详细页面渲染器中使用AddKeyCommand(..)添加了按键命令

来自此链接:Is it possible to hook into Hardware keyboard events at an Application level?

  1. 我已使用VS 2017中提供的Xamarin表单向导创建了Master-Detail应用,并在“关于”页面中添加了以上代码 渲染器。但是它不起作用。 “ KeyRecv”处理程序未按下HID扫描器上的键
  2. 我已经用普通的单页样本尝试了相同的代码。再次使用VS2017向导创建此示例。 现在,我已经为MainPage创建了页面渲染器。令我惊讶的是,它可以在单页示例中运行。
  3. 所以问题是为什么在“主从详细信息”页面中不起作用。
  4. 附加点。我既没有在应用程序中的任何地方都没有设置“焦点”,也没有为“主从细节”或“单页应用程序”设置。
  5. OnElementChanged在调试各个页面的过程中被调用。
  6. 这些是纯向导创建的应用,带有上面的代码。

那么iOS上Xamarin表单中的主从页面应用程序有什么问题? (请记住,这些功能可以在Android和UWP上很好地工作)

1 个答案:

答案 0 :(得分:0)

在Xamarin的Master-Detail中,顶视图控制器是Master-Detail页面,因此您需要从其渲染器中提供的链接中实现该逻辑,它应该对手机使用PhoneMasterDetailRenderer,对平板电脑使用TabletMasterDetailRenderer。