【问题标题】:Is it possible to detect key presses and releases on iPad Smart Keyboard?是否可以检测 iPad 智能键盘上的按键和释放?
【发布时间】:2018-07-13 08:18:13
【问题描述】:

我是用于 iPad 的开源合成器 AudioKit Synth One 的开发人员之一,有人给我们留下了评论,要求通过物理智能键盘而不是屏幕键盘实现合成器的播放。类似于 Mac 的“音乐打字”上的 Garageband 或 Logic Pro 的功能。

为此,我需要能够响应按键和按键释放。有谁知道 Apple 的 API 目前是否可以做到这一点?

【问题讨论】:

    标签: ios ipad keyboard midi audiokit


    【解决方案1】:

    可以通过覆盖UIResponderkeyCommands 属性(其中UIViewController 是子类)来响应来自外部键盘的按键,但是,您将无法检测到不同的操作,例如,按下键松开键

    覆盖应该捕获此事件的UIViewController 的此属性

    斯威夫特:

    override var keyCommands: [UIKeyCommand]? {
        return [
            UIKeyCommand(input: "Z",
                         modifierFlags: [],
                         action: #selector(didPressZ)),
            UIKeyCommand(input: "X",
                         modifierFlags: [],
                         action: #selector(didPressX))
            ] /// etc., return UIKeyCommand for each key you want to react to
    }
    

    【讨论】:

    • 我刚刚实现了你的建议,它确实可以工作。它告诉我何时按下一个键。但是,在按住按键时重复按键是不可预测的,所以我必须要聪明一点,除非有人知道键盘状态的后门。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2019-07-08
    • 2016-09-20
    • 2019-03-05
    • 1970-01-01
    • 2020-05-09
    • 2022-12-05
    • 2012-04-04
    • 2016-11-13
    相关资源
    最近更新 更多