【问题标题】:How do I check if the shift key is currently being pressed down in Swift?如何检查当前是否在 Swift 中按下 shift 键?
【发布时间】:2022-01-03 04:58:33
【问题描述】:

我正在尝试检查函数运行时是否按下了 shift。像这样的东西(但显然不是这个,这只是一个例子):

func doThisThing() {
    if Keyboard.shared.keyBeingPressed(.shift) { // < What I'm trying to figure out
        print("Doing this thing.")
    } else {
        print("You're not holding shift.")
    }
}

我尝试查找,但我只能找到 keyDown/keyUp 事件,这在这种情况下是不实用的。

【问题讨论】:

  • 据我所知,您根本不需要在 SwiftUI 中执行这些命令式的操作……或者您实际上是在使用 AppKit,而 swiftui 只是一个错误标签?
  • 如果您正在使用 AppKit,请参阅stackoverflow.com/a/14774656/5133585
  • “我能找到的只有 keyDown/keyUp 事件,在这种情况下这是不实用的。”是什么让它们不切实际?

标签: swift macos swiftui key shift


【解决方案1】:

我已经很久没有做这种事情了,但我似乎记得你需要设置一个 NSResponder 并注意 keyDown/keyUp 事件。然后,您将解析事件以查找按下或释放的 shift 键。

看起来还有一个函数 flagsChanged 可以实现,以便在某个修饰键更改状态时收到通知。请参阅此 SO 线程:

How can I detect that the Shift key has been pressed?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-19
    • 2010-11-13
    • 2012-02-05
    相关资源
    最近更新 更多