在Mac版UIKit(Catalyst)中检测单个修改键更改

Dmi*_*riy 7 macos ios swift uikitformac mac-catalyst

我正在使用Mac的UIKit(也称为Mac的iPad AppsProject Catalyst)在MacOS上移植iOS应用。

该应用使用keyCommandsfromUIKit来检测单个修饰键的按下:

UIKeyCommand(input: "", modifierFlags: .shift, action: #selector(singleShift))
Run Code Online (Sandbox Code Playgroud)

这段代码可在带有外部键盘的iPad上完美运行,我会触发每个事件吗?按。但是,这在MacOS上不起作用,尽管单个非修饰符事件和修饰符+非修饰符组合起作用。

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

还是我应该放弃UIKeyCommand并尝试UIGestureRecognizer

小智 1

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

否则,如果这是 Catalyst 的限制,请考虑从应用程序套件中包装更稳定的 APIUIGestureRecognizer或使用.