NSControlKeyMask
,NSAlternateKeyMask
和NSShiftKeyMask
等标识符在哪里定义?我需要使用名为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'
为什么呢?我究竟做错了什么?我该如何解决?
提前致谢。
答案 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;。