无法在Swift 2.0中正确使用NSEventModifierFlags

Pet*_* W. 2 xcode cocoa swift swift2

我正在尝试在Xcode 7(7A120f)中开发一个小型Mac应用程序,但它并没有让我这么做.据称,此代码段有问题:

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

    self.doSomething()
})
Run Code Online (Sandbox Code Playgroud)

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

二元运算符'|' 不能应用于两个NSEventModifierFlags操作数

这是怎么回事?根据我在网上找到的所有内容,我应该能够做到这一点.

ric*_*ter 6

在Swift 2中,比特字段样式的枚举NSEventModifierFlags作为子类型导入Swift OptionSetType.那些不像C(或Swift 1.x)那样使用bit-twiddling语法.

相反,这些类型使用反映集合逻辑的方法和语法.您可以使用set literal创建一个:

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

    self.doSomething()
})
Run Code Online (Sandbox Code Playgroud)