【问题标题】:Physical keyboard event hooking does not work with Master-Detail app in Xamarin iOS Forms物理键盘事件挂钩不适用于 Xamarin iOS 表单中的 Master-Detail 应用程序
【发布时间】:2019-06-20 04:17:29
【问题描述】:

我需要挂钩来自 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)

【问题讨论】:

  • 在这里查看renderers#pages 并尝试在 MasterdetailPageRender.(PhoneMasterDetailRenderer) 中添加您的代码

标签: c# xamarin.forms hid


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    • 2021-12-01
    相关资源
    最近更新 更多