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)]];
}
此代码给我以下错误:
Use of undeclared identifier 'NSControlKeyMask'
Use of undeclared identifier 'NSAlternateKeyMask'
Use of undeclared identifier 'NSShiftKeyMask'
为什么?我究竟做错了什么?我该如何解决?
提前致谢。
最佳答案
“DDHotKey”示例项目使用预编译头文件“DDHotKey_Prefix.pch”及其内容
#ifdef __OBJC__
#import <Cocoa/Cocoa.h>
#endif
所以<Cocoa/Cocoa.h>
自动包含在所有 Objective-C 中
来源。这又包括 Foundation 和 AppKit 框架
标题。
新的 Xcode 项目不再创建预编译的头文件。 如果您只是将示例项目中的源文件复制到 一个新项目,就会出现你的错误。
您可以将预编译的头文件添加到您的项目中, 但实际上添加似乎就足够了
#import <AppKit/AppKit.h>
在“DDHotKeyUtilities.m”中。
关于objective-c - 在哪里定义了像 NSControlKeyMask 这样的标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29393333/