DDHotKey in Xcode 7



我正在开发一个工具栏应用程序,我想在那里有一个全局快捷方式。我发现只有通过使用Carbon事件管理才能实现这一功能,幸运的是,我找到了一个用于此目的的Cocoa包装器(DDHotKey)。然而,我无法让它发挥作用。我在做什么:

DDHotKeyCenter * center = [[DDHotKeyCenter alloc] init];
DDHotKey *key= [c registerHotKeyWithKeyCode:1 modifierFlags:NSControlKeyMask target:self action:@selector(print) object:nil];

在这段代码之后,关键变量为nil,这表示出现了问题。我还试着调试,发现registerHotKeyWithKeyCode甚至没有被调用——它的实现中的断点没有被触发。

需要提及的是,我在项目设置中包含了Carbon框架。

DDHotKey文档不是很全面,所以我停留在这一点上。

看起来,DDHotKeyCenter是通过singleton方法+[DDHotKeyCenter sharedHotKeyCenter]访问的。由于您试图使用alloc/init创建一个新实例,因此返回nil。

原因可以从这种方法+[DDHotkeyCenter allocWithZone:]:中找到

+ (id)allocWithZone:(NSZone *)zone {
    return sharedHotKeyCenter;
}

+allocWithZone返回仅在+sharedHotkeyCenter方法中初始化的实例变量。

相关内容

  • 没有找到相关文章

最新更新