【问题标题】:Disable the builtin keyboard in mac os x programmatically?以编程方式禁用mac os x中的内置键盘?
【发布时间】:2019-04-22 08:54:01
【问题描述】:

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

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

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

我是 mac os 编程的新手,所以会感谢更多详细说明:)

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

【问题讨论】:

    标签: swift xcode macos cocoa keyboard


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回复,但请让自己清楚。我想在任何地方完全禁用键盘、任何输入,而不仅仅是在应用程序中。
    • 这行不通。我想基于单击按钮禁用/启用键盘。不过还是谢谢。
    猜你喜欢
    • 2014-06-22
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-02
    • 1970-01-01
    • 2010-10-30
    相关资源
    最近更新 更多