以编程方式禁用Mac OS X中的内置键盘?

时间:2018-11-19 23:23:45

标签: swift xcode macos cocoa keyboard

有没有办法在macOS X中禁用键盘?

我正在寻找一种可以在应用程序中使用此功能的方法。那么最好是可以以编程方式完成并且不需要root特权的事情?

我希望键盘在操作系统中的任何地方都处于启用状态,即使应用程序处于后台,也要等到我通过按下按钮将其启用。

我是Mac OS编程的新手,所以将不胜感激:)

更新:我正在尝试使用此命令:CGEventTapCreate,但无法使其正常工作。现在有人知道如何使其在Swift 3中正常工作吗?

1 个答案:

答案 0 :(得分:0)

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