如何在我的应用程序(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 的参考
如何使用 JavaScript 检测 Ctrl+V、Ctrl+C?