我正在开发一个工具栏应用程序,我想有一个全球快捷方式。我发现这种能力只有通过碳事件管理才有可能,幸运的是,我为此找到了一个可可包装器( Cocoa,DDHotKey)。但是,我不能让它开始工作。我在这里做的是:
DDHotKeyCenter * center = [[DDHotKeyCenter alloc] init];
DDHotKey *key= [c registerHotKeyWithKeyCode:1 modifierFlags:NSControlKeyMask target:self action:@selector(print) object:nil];在这段代码之后,关键变量为零,表示出了问题。我还试着调试,发现registerHotKeyWithKeyCode甚至没有被调用--在其实现中没有触发断点。
需要提到的是,我在项目设置中包括了碳框架。
DDHotKey文档不是很全面,所以我就停留在这一点上。
发布于 2015-11-07 11:21:06
看起来,DDHotKeyCenter是通过单例方法+[DDHotKeyCenter sharedHotKeyCenter]访问的。由于您试图使用alloc/init创建一个新实例,因此将返回nil。
在这种方法中可以找到原因+[DDHotkeyCenter allocWithZone:]。
+ (id)allocWithZone:(NSZone *)zone {
return sharedHotKeyCenter;
}+allocWithZone返回仅在+sharedHotkeyCenter方法中初始化的实例变量。
https://stackoverflow.com/questions/33576865
复制相似问题