代码之家  ›  专栏  ›  技术社区  ›  Jared Updike

iOS输出控制:从硬件键盘接收前向删除键

  •  0
  • Jared Updike  · 技术社区  · 6 年前

    • 当用户连接了硬件键盘(至少在模拟器中)且未选择任何文本时,按Forward Delete键,则不会发生任何事情。

    请注意,我指的不是Mac上标记为Delete的键,它只是一个退格键——使用UIKeyInput deleteBackward方法的实现,它已经正常工作了。

    两个问题:

    1. 如果这在其他应用程序中是可能的和常见的,我如何截获此密钥命令?我找不到作为字符串发送的内容来创建UIKeyCommand,也找不到任何API方法可以轻松实现这一点。

    还请注意,选择文本并按向前删除键在该自定义文本编辑器中已经正常工作,因此iOS似乎知道该键。

    仅供参考,本规范以C#表示,但也欢迎对Swift或Objective-C第(2)部分的回答。

    (我目前的最佳猜测可能是尝试在 this question

    更新:

    现在按Delete键(右键删除而不是退格键)可以在iOS上工作,至少在模拟器上是这样。这可能是TextInput系统中的一个错误,因为现在当我按下右删除键时,系统调用我的代码选择光标右侧的单个字符,然后调用我的DeleteBackwards代码删除选择(该代码知道如何删除所选文本)。奇怪但令人高兴的是,这正如预期的那样“开箱即用”。

    0 回复  |  直到 4 年前
        1
  •  1
  •   Nick    4 年前

    您可以使用Unicode代码点 0x7f

    UIKeyCommand(input: "\u{7f}", modifierFlags: [], action: #selector(forwardDelete))
    

    目标C:

    [UIKeyCommand keyCommandWithInput:[NSString stringWithFormat:@"%C", 0x7f] modifierFlags:0 action:@selector(forwardDelete)]