NSControlKeyMask等标识符在哪里定义

时间:2015-04-01 14:22:11

标签: objective-c cocoa swift

NSControlKeyMaskNSAlternateKeyMaskNSShiftKeyMask等标识符在哪里定义?我需要使用名为DDHotKey的Objective-C库编译Swift项目,该库包含以下代码:

if (modifiers & NSControlKeyMask) {
    [final appendString:[characterMap objectForKey:@(kVK_Control)]];
}
if (modifiers & NSAlternateKeyMask) {
    [final appendString:[characterMap objectForKey:@(kVK_Option)]];
}
if (modifiers & NSShiftKeyMask) {
    [final appendString:[characterMap objectForKey:@(kVK_Shift)]];
}

此代码给出了以下错误:

  

使用未声明的标识符'NSControlKeyMask'

     

使用未声明的标识符'NSAlternateKeyMask'

     

使用未声明的标识符'NSShiftKeyMask'

为什么呢?我究竟做错了什么?我该如何解决?

提前致谢。

1 个答案:

答案 0 :(得分:9)

" DDHotKey"示例项目使用预编译头文件" DDHotKey_Prefix.pch"内容

#ifdef __OBJC__
    #import <Cocoa/Cocoa.h>
#endif

以便所有Objective-C自动包含<Cocoa/Cocoa.h> 源。这反过来又包括Foundation和AppKit框架 头。

新的Xcode项目不再创建预编译的头文件。 如果您只是将示例项目中的源文件复制到 一个新项目,你的错误将会发生。

您可以将预编译的头文件添加到项目中, 但实际上似乎足以添加

#import <AppKit/AppKit.h>

in&#34; DDHotKeyUtilities.m&#34;。