首页 > 解决方案 > iPadOS 15 beta 中带有 UIKeyCommand 的键盘快捷键

问题描述

出于某种原因,我无法在 iPadOS 15(beta 5)中使用硬件键盘快捷键。它们适用于大多数键,但不适用于箭头键和 Tab 键。

在 Xcode 13(beta 4)中编译并在 iPadOS 14.5 模拟器上运行时,相同的代码似乎运行良好,但在使用相同的 Xcode 但在 iPadOS 15 sim 上构建时拒绝运行。我已经在 iPadOS 15 beta 到 5 的实际设备上进行了尝试,结果相同。

这是一个最小的例子:

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        addKeyCommand(UIKeyCommand(title: "UP", action: #selector(handle(key:)), input: UIKeyCommand.inputUpArrow, modifierFlags: []))
        addKeyCommand(UIKeyCommand(title: "DOWN", action: #selector(handle(key:)), input: UIKeyCommand.inputDownArrow, modifierFlags: []))
        addKeyCommand(UIKeyCommand(title: "TAB", action: #selector(handle(key:)), input: "\t", modifierFlags: []))
    }

    @objc func handle(key: UIKeyCommand?) {
        NSLog("Intercepted key: \(key?.title ?? "Unknown")")
    }
}

我没有找到任何相关的报告或打开的雷达,所以我怀疑我可能在这里遗漏了一些东西。如果应该报告,我在哪里报告这样的错误?

谢谢你。

标签: iosipadosios15uikeycommandipados15

解决方案


显然,有一个新UIKeyCommand属性wantsPriorityOverSystemBehavior,需要true某些键设置 - 就像我在问题中提到的那样:https ://developer.apple.com/documentation/uikit/uikeycommand/3780513-wantspriorityoversystembehavior


推荐阅读