NSControlKeyMask等标识符在哪里定义

Fro*_*art 7 cocoa objective-c swift

哪里像标识符NSControlKeyMask,NSAlternateKeyMaskNSShiftKeyMask界定?我需要使用名为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)]];
}
Run Code Online (Sandbox Code Playgroud)

此代码给出了以下错误:

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

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

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

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

提前致谢.

Mar*_*n R 10

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

#ifdef __OBJC__
    #import <Cocoa/Cocoa.h>
#endif
Run Code Online (Sandbox Code Playgroud)

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

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

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

#import <AppKit/AppKit.h>
Run Code Online (Sandbox Code Playgroud)

在"DDHotKeyUtilities.m"中.