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

时间:2017-12-20 17:14:29

标签: ios swift uipasteboard uikeycommand

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

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

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

2 个答案:

答案 0 :(得分:2)

UIKeyCommand的文档说:“映射到已知系统事件的关键命令(例如剪切,复制和粘贴)会自动路由到相应的响应方法”。

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

答案 1 :(得分:0)

我发现了这个问题,由于某些原因,这在我的模拟器上无效:

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

然而,当我尝试使用物理设备时,它确实有效!这对于与我有同样问题的人来说是一个解决方案。