如何检测我的应用程序中的命令 C (Swift)?

How to detect a Command C in my app (Swift)?

我有一个用 Swift 编写的计算器应用程序,它与自定义键盘快捷键完全兼容。 我正在尝试在用户按下 Command + C 时调用一个方法,但是,每当我尝试分配以下自定义快捷方式时,它就不起作用:

UIKeyCommand(input: "c", modifierFlags: [.command], action: #selector(commandCAction))

commandCAction 方法永远不会被调用,这与其他快捷方式不同。我认为这是由于 Apple 保留了此快捷方式。是否有任何观察者或方法可用于检测用户何时在物理键盘上按下 Command + C

UIKeyCommand 的文档说:"Key commands that map to known system events (such as cut, copy and paste) are automatically routed to the appropriate responder methods"。

您最好的方法可能是将 UI 元素子类化到您想要拦截命令的位置并实现您自己的 copy:.

我发现了这个问题,出于某种原因这在我的模拟器上不起作用:

UIKeyCommand(input: "c", modifierFlags: [.command], action: #selector(commandCAction))

但是,当我在物理设备上尝试时,它成功了!所以对于和我有同样问题的人来说,这是一个解决方案。