无法在 Swift 2.0 中正确使用 NSEventModifierFlags

Can't properly use NSEventModifierFlags in Swift 2.0

我正在尝试在 Xcode 7 (7A120f) 中开发一个 Mac 小应用程序,但它不允许我这样做。据称,此代码段有错误:

let composeHotKey = DDHotKey(keyCode: UInt16(kVK_Return), modifierFlags: NSEventModifierFlags.CommandKeyMask | NSEventModifierFlags.ShiftKeyMask, task: {
    event in

    self.doSomething()
})

尝试编译我的应用程序导致 Xcode 构建失败,并显示以下错误消息,同时突出显示 NSEventModifierFlags.CommandKeyMask | NSEventModifierFlags.ShiftKeyMask 部分:

Binary operator '|' cannot be applied to two NSEventModifierFlags operands

这是怎么回事?根据我在网上查到的一切,我应该可以做到。

在 Swift 2 中,像 NSEventModifierFlags 这样的位域样式枚举作为 OptionSetType 的子类型导入到 Swift。那些不使用像 C 中那样的位旋转语法(或 Swift 1.x)。

相反,此类类型使用反映集合逻辑的方法和语法。您可以使用一组文字创建一个:

let composeHotKey = DDHotKey(keyCode: UInt16(kVK_Return), modifierFlags: .CommandKeyMask.rawValue | .ShiftKeyMask.rawValue, task: {
    event in

    self.doSomething()
})
NSEventModifierFlags(rawValue: NSEventModifierFlags.NumericPadKeyMask.rawValue | NSEventModifierFlags.NumericPadKeyMask.rawValue)