首页 > 解决方案 > 以编程方式禁用mac os x中的内置键盘?

问题描述

有没有办法在 macos x 中禁用键盘?

我正在寻找一种可以在应用程序中使用此功能的方法。所以最好是可以以编程方式完成并且不需要根权限的东西?

我希望键盘在操作系统中的任何地方都可以禁用,即使应用程序在后台,直到我通过按下按钮来启用它。

我是 mac os 编程的新手,所以会很感激更多的阐述:)

更新:我正在尝试使用它:CGEventTapCreate但无法使其正常工作。现在有人知道如何让它在 swift 3 中工作吗?

标签: swiftxcodemacoscocoakeyboard

解决方案


您可以覆盖 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


推荐阅读