我正在尝试在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
部分:
二元运算符'|'不能应用于两个NSEventModifierFlags操作数
发生了什么事?根据我在网上找到的所有内容,我应该能够做到这一点。
答案 0 :(得分:6)
在Swift 2中,像NSEventModifierFlags
这样的位字段样式枚举作为OptionSetType
的子类型导入Swift。那些不会像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()
})
答案 1 :(得分:0)
NSEventModifierFlags(rawValue: NSEventModifierFlags.NumericPadKeyMask.rawValue | NSEventModifierFlags.NumericPadKeyMask.rawValue)