0

我有一个用 Objective-C 编写的演示应用程序,它使用了 Dave DeLong 的 DDHotKey 类(一段出色的编码,顺便说一句),我想知道在应用程序开始后我应该在哪里查看让该类启动?

具体来说,我想分别在程序执行和程序关闭时运行该类中的两个函数,registerhotkey(Dave DeLong 提供的示例代码中的 registerexample1)和 unregisterhotkey(Dave DeLong 提供的示例代码中的 unregisterexample1)。

我不太确定如何做到这一点,我正在寻找关于我应该在哪里寻找的指南,或者只是一些基本的指示。

谢谢!

4

1 回答 1

4

最简单的方法是applicationDidFinishLaunching:在您的应用程序委托中的方法中。这在启动时调用。applicationWillTerminate:当应用程序即将退出时,将调用该方法。

// in application delegate
- (void)applicationDidFinishLaunching:(NSNotification *)notification {
    // call registerhotkey
}
- (void)applicationWillTerminate:(NSNotification *)notification {
    // call unregisterhotkey
}

或者,您可以将调用放在主函数中,registerhotkey在调用 NSApplicationMain 之前和调用 NSApplicationMainunregisterhotkey之后调用。如果还没有,您将需要围绕此代码添加一个自动释放池。

int main(int argc, char **argv) {
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    // call registerhotkey
    int result = NSApplicationMain(argc,argv);
    // call unregisterhotkey
    return result;
}

最后,您可以使用特殊load方法在registerhotkey加载类或类别时调用。您实际上不需要调用unregisterhotkey,因为系统会在您的应用程序退出时自动调用。

// in any class or category
+ (void)load {
    // call registerhotkey
}
于 2011-03-29T22:20:38.957 回答