ios - 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")")
}
}
我没有找到任何相关的报告或打开的雷达,所以我怀疑我可能在这里遗漏了一些东西。如果应该报告,我在哪里报告这样的错误?
谢谢你。
解决方案
显然,有一个新UIKeyCommand
属性wantsPriorityOverSystemBehavior
,需要true
为某些键设置 - 就像我在问题中提到的那样:https ://developer.apple.com/documentation/uikit/uikeycommand/3780513-wantspriorityoversystembehavior
推荐阅读
- sql - SQL Select Query 组合两个查询 if/else, null, empty input
- powershell - 查找 PC 上的所有 .txt 文件,同时排除 Powershell 中的多个路径
- excel - 通过列名确定目标单元格是否在表列中
- python - Python TypeError:无法在上进行位置索引
- php - PHP - MYSQL 记录显示多个
- laravel-5 - 迁移到数据库(hrm-master)并得到这个错误
- node.js - 我是否必须在 EJS 的 res.render() 中提供回调才能捕获错误?
- java - 现有框架用于实现具有身份验证/授权和指数退避的 REST-ful API 框架
- python-3.x - LDA Mallet CalledProcessError
- python - 带有中间页面的 Django 管理操作:没有返回信息