我有一个用Objective-C编写的演示应用程序,它使用了Dave DeLong的DDHotKey类(一个精彩的编码,顺便说一下),我想知道应该在应用程序何时开始启动课程的哪个位置?
具体来说,类中有两个函数,registerhotkey(Dave DeLong提供的示例代码中的registerexample1)和unregisterhotkey(Dave DeLong提供的示例代码中的unregisterexample1),我想在程序执行和程序中运行分别关闭。
我不确定如何做到这一点,我正在寻找一个关于我应该在哪里看的指南或者只是一些基本指针。
谢谢!
答案 0 :(得分:4)
最简单的方法是使用app委托中的applicationDidFinishLaunching:
方法。这在启动时调用。当应用程序即将退出时,将调用applicationWillTerminate:
方法。
// in application delegate
- (void)applicationDidFinishLaunching:(NSNotification *)notification {
// call registerhotkey
}
- (void)applicationWillTerminate:(NSNotification *)notification {
// call unregisterhotkey
}
或者,您可以将调用放在main函数中,在调用NSApplicationMain之前调用registerhotkey
,在调用NSApplicationMain之后调用unregisterhotkey
。如果还没有,则需要在此代码周围添加自动释放池。
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
}