【发布时间】:2021-12-21 15:00:43
【问题描述】:
我想检测用户何时按下 Fn 键并执行一些任务。我尝试了以下方法,但它不起作用:
if event.keyCode == kVK_Function {
print("fn key pressed")
}
我对左括号、右括号、斜线、字母和数字等其他键有类似的代码。对于这些,如上所示的类似代码可以正常工作,但它不适用于 Fn 键。我认为这是不同的处理方式。
【问题讨论】:
我想检测用户何时按下 Fn 键并执行一些任务。我尝试了以下方法,但它不起作用:
if event.keyCode == kVK_Function {
print("fn key pressed")
}
我对左括号、右括号、斜线、字母和数字等其他键有类似的代码。对于这些,如上所示的类似代码可以正常工作,但它不适用于 Fn 键。我认为这是不同的处理方式。
【问题讨论】:
你需要检查NSEvent的modifierFlags:
if event.modifierFlags.contains(.function) {
print("fn key pressed")
}
【讨论】:
flagsChanged 事件。您需要保留一个布尔变量来记住最后一个 fn 键状态,并将新状态与新状态进行比较以检测 rising/falling edges。
fn,然后向上和向下发送 shift 键,则每次都会打印出 "fn key pressed",尽管一直按 fn 键