我正试图在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/