【发布时间】:2015-04-01 13:30:45
【问题描述】:
我刚刚尝试在 Swift 项目中导入名为 DDHotKey 的 Objective-C 库,但在某些情况下它不起作用。
以下是我已完成的步骤:
- 下载“DDHotKey”存储库
- 右键单击项目 -> “将文件添加到 %project_name%” -> 选择“DDHotKey-master”文件夹,勾选“如果需要,复制项目”复选框并启用“创建文件夹引用”单选按钮
- 根据Apple文档,此时应该会出现有关桥接头的提示,但它没有tt--文件刚刚复制到项目目录
- 我尝试手动将桥接头添加到项目中(文件 -> 新建 -> 源文件 -> 头文件),名称为“bridge.h”,在项目设置中进行设置(构建设置 -> Swift 编译器- 代码生成 -> Objective-C Bridging Header -> "bridge.h") 并将以下代码放入此文件:
.
#ifndef project_name_bridge_h
#define project_name_bridge_h
#import "DDHotKey-master/DDHotKeyCenter.h"
#endif
现在它编译以下代码:
var hotKeyCenter = DDHotKeyCenter.sharedHotKeyCenter()
但是当我尝试调用这个对象的方法时,我遇到了一个错误:
hotKeyCenter.registerHotKeyWithKeyCode(34, modifierFlags: 0, task: (NSEvent) {
println("str")
})
调用中的参数“action”缺少参数
虽然有两种方法,我使用不同的一种:
- (DDHotKey *)registerHotKeyWithKeyCode:(unsigned short)keyCode modifierFlags:(NSUInteger)flags target:(id)target action:(SEL)action object:(id)object;
- (DDHotKey *)registerHotKeyWithKeyCode:(unsigned short)keyCode modifierFlags:(NSUInteger)flags task:(DDHotKeyTask)task;
为什么?我究竟做错了什么?我该如何解决?
提前致谢。
【问题讨论】:
标签: objective-c swift