【问题标题】:Detect Single Modifier Key Change in UIKit for Mac (Catalyst)检测 UIKit for Mac (Catalyst) 中的单个修饰符键更改
【发布时间】:2020-01-27 03:14:50
【问题描述】:

我在 MacOS 上使用 UIKit for Mac 移植 iOS 应用程序,也称为 iPad 应用程序 for MacProject Catalyst

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

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

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

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

或者也许我应该放弃UIKeyCommand,改用UIGestureRecognizer

【问题讨论】:

    标签: ios swift macos uikitformac mac-catalyst


    【解决方案1】:

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

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

    【讨论】:

    • UIGestureRecognizer 没有(据我所知)提供检测修饰键的方法。我错过了什么吗?我现在的解决方法是按照您的建议加载 AppKit 包。不过,如果能在 UIKit 中做到这一点,那就太好了。
    • 我认为你是对的,我的建议是基于 OP 说他们可以使用 UIGestureRecognizer 作为解决方法,我不知道它能够识别 mod 键
    • @ConfusedVorlon UIGestureRecognizer 确实提供了 .modifierFlags 属性。
    • @MinshengLiu - 好地方。在 13.4 中添加 - 也许 Apple 会听 ;)
    • @ConfusedVorlon 没有意识到它是如此新。那我真的很幸运!
    猜你喜欢
    • 1970-01-01
    • 2015-01-16
    • 2021-01-25
    • 1970-01-01
    • 2017-11-09
    • 2020-12-27
    • 1970-01-01
    • 2013-11-03
    • 1970-01-01
    相关资源
    最近更新 更多