我正试图在Xcode7(7A120F)中开发一个小的Mac应用程序,但它不允许我这么做。据称,此代码段有缺陷:

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

    self.doSomething()
})

尝试编译我的应用程序会导致xcode生成失败,并在突出显示NSEventModifierFlags.CommandKeyMask | NSEventModifierFlags.ShiftKeyMask部分时显示以下错误消息:
二进制运算符“”不能应用于两个nsEventModifierFlags操作数
发生什么事?根据我在网上找到的所有信息,我应该能够做到。

最佳答案

在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()
})

关于xcode - 无法在Swift 2.0中正确使用NSEventModifierFlags,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31224099/

10-12 21:28