值转换问题:枚举类型'enum NSEventMask'的隐式转换

时间:2014-09-05 21:30:01

标签: objective-c macos

当Xcode抱怨

时,我无法弄清楚我在做错什么
Value Conversion Issue
   Implicit conversion from enumeration type 'enum NSEventMask' to different enumeration type 'NSEventModifierFlags' (aka 'enum NSEventModifierFlags')

它是Xcode不满意的NSLeftMouseDownMask标志。

NSEvent *event =  [NSEvent mouseEventWithType:NSLeftMouseDown
                                     location:menuOrigin
                                modifierFlags:(NSLeftMouseDownMask) // 0x100
                                    timestamp:0
                                 windowNumber:[[(NSButton *)sender window] windowNumber]
                                      context:[[(NSButton *)sender window] graphicsContext]
                                  eventNumber:0
                                   clickCount:1
                                     pressure:1];

1 个答案:

答案 0 :(得分:1)

是的,正如Larme建议的那样,请使用

NSDeviceIndependentModifierFlagsMask

替换     NSLeftMouseDownMask

NSDeviceIndependentModifierFlagsMask: 用于仅检索与设备无关的修饰符标志,允许应用程序屏蔽与设备相关的修饰符标志,包括事件合并信息。