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

Posted

技术标签:

【中文标题】如何在我的应用程序(Swift)中检测命令 C?【英文标题】:How to detect a Command C in my app (Swift)? 【发布时间】:2017-12-20 17:14:29 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

【参考方案2】:

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

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

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

【讨论】:

以上是关于如何在我的应用程序(Swift)中检测命令 C?的主要内容,如果未能解决你的问题,请参考以下文章

我如何从目标 c 代码中获取 Swift AppDelegate 的参考

如何在我的应用程序上从firebase控制台进行检测

如何使用 JavaScript 检测 Ctrl+V、Ctrl+C?

如何使用 JavaScript 检测 Ctrl+V、Ctrl+C?

如何检测哪个视图正在平移手势 Swift

如何检测用户何时在 Swift 中完成移动 Range 滑块