swift - 以编程方式禁用mac os x中的内置键盘?
问题描述
有没有办法在 macos x 中禁用键盘?
我正在寻找一种可以在应用程序中使用此功能的方法。所以最好是可以以编程方式完成并且不需要根权限的东西?
我希望键盘在操作系统中的任何地方都可以禁用,即使应用程序在后台,直到我通过按下按钮来启用它。
我是 mac os 编程的新手,所以会很感激更多的阐述:)
更新:我正在尝试使用它:CGEventTapCreate但无法使其正常工作。现在有人知道如何让它在 swift 3 中工作吗?
解决方案
您可以覆盖 keyDown 和 keyUp 事件并离开函数而不调用其超类
override func keyDown(with event: NSEvent) {
//super.keyDown(event)
}
override func keyUp(with event: NSEvent) {
//super.keyUp(event)
}
上面的代码适用于 NSTextView
对于 NSTextField,您应该手动删除输入的字母。至于 NSTextfield 的 keyDown 事件在被覆盖时不会被调用。
override func keyUp(with event: NSEvent) {
self.stringValue = ""
}
我使用了这些技术,但不确定这是否是正确的方法......但它有效:P
推荐阅读
- python - Python 谷歌登录用户通过 BeautifulSoup Post
- elasticsearch - Elasticsearch:FVH 突出显示多个前标签和后标签不正确地标记令牌?
- javascript - 为什么我使用 for 循环函数得到未定义的结果?
- c# - 如何在统一项目中使用文件和 .assets 文件?
- python - 如何在 python 中通过 cyrest 打开 cytoscape 文件?
- mysql - 删除属于同一用户的另一条记录在十分钟内创建的任何 MySQL 记录
- c# - 正则表达式无法解析最后一组
- scala - 如何从 scala Future 的输出中检索值?
- kotlin - Spring Boot JPA 多租户 HikariCP 池快速运行满
- python-3.x - 无法替换熊猫数据框中的文本