ios - 检测 UIKit for Mac (Catalyst) 中的单个修饰符键更改

标签 ios swift macos uikitformac mac-catalyst

我正在使用适用于 Mac 的 UIKit(也称为适用于 Mac 的 iPad 应用程序或 Project Catalyst)在 MacOS 上移植 iOS 应用程序。

该应用程序使用 keyCommands from UIKit 检测单个修饰键按下:

UIKeyCommand(input: "", modifierFlags: .shift, action: #selector(singleShift))

此代码在带有外部键盘的 iPad 上完美运行,每次按下 ⇧ 都会触发该事件。但是,这在 MacOS 上不起作用,尽管单个非修饰符事件和修饰符 + 非修饰符组合有效。

如何实现所需的行为并获得有关单个修饰键事件的通知?

或者我应该放弃UIKeyCommand并尝试UIGestureRecognizer反而?

最佳答案

这可能不是您的问题,请确保您没有任何键盘应用程序或拦截键盘输入的应用程序正在运行。当我安装了 Karibeaner-elements 时,我遇到了这样的问题。

否则,如果这是催化剂的限制,请考虑包装 more stable API从应用程序包或使用 UIGestureRecognizer .

关于ios - 检测 UIKit for Mac (Catalyst) 中的单个修饰符键更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58123624/

相关文章:

ios - tableView viewForHeaderInSection 从 ios7 中的第 1 节开始

iOS swift : Sound not playing

macos - Mac Matlab/Simulinks 实时音频输入

ios - 防止文本的特定部分被截断

objective-c - 从多个线程使用 runModalForWindow 有多危险?

python-3.x - 在 MacOs 上卸载 python3

ios - 错误链接按钮

javascript - HTML5 音频元素在移动设备上不起作用

ios - 以编程方式添加按钮以执行 segue

ios - 核心数据可以用来保存可编码结构吗?