gpt4 book ai didi

Swift 4 : Bitwise AND for NSEvent. 修改器标志

转载 作者:搜寻专家 更新时间:2023-10-31 22:01:24 24 4
gpt4 key购买 nike

<分区>

我正在尝试使用 NSEvent.addGlobalMonitorForEvents 设置热键(选项卡)

let keycode = 48 // tab
let keymask: NSEvent.ModifierFlags = .option

func handler(event: NSEvent!) {

if event.keyCode == keycode &&
event.modifierFlags == event.modifierFlags & keymask {

// do whatever

}
}

NSEvent.addGlobalMonitorForEvents(matching: [.keyDown], handler: handler)

但是我在按位与部分得到这个错误:

Cannot convert value of type 'NSEvent.ModifierFlags' to expected argument type 'UInt8'

event.ModifierFlags 替换为 UInt8(event.modifierFlags.rawValue) 等也失败了。

我该如何解决这个问题?

编辑:

直接比较 event.modifierFlags == keymask 失败(即使我只按下 option-tab(没有其他修改键))。

在将 event.modifierFlags 打印到控制台时,会打印不同的值,具体取决于我按下的是左选项键还是右选项键。

print (event.modifierFlags) // prints: ModifierFlags(rawValue: 524576) using LEFT OPTION 
// and ModifierFlags(rawValue: 524608) when using RIGHT OPTION.

print(keymask) // prints: ModifierFlags(rawValue: 524288)

在这一点上,我模糊的预感是我需要忽略低位,只比较高位。我只是不知道该怎么做。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com