Самый простой способ сделать это - метод applicationDidFinishLaunching:
в вашем делегате приложения.Это вызывается при запуске.Метод applicationWillTerminate:
будет вызван, когда приложение собирается завершить работу.
// in application delegate
- (void)applicationDidFinishLaunching:(NSNotification *)notification {
// call registerhotkey
}
- (void)applicationWillTerminate:(NSNotification *)notification {
// call unregisterhotkey
}
В качестве альтернативы, вы можете разместить вызовы в своей основной функции, вызывая registerhotkey
перед вызовом NSApplicationMain и unregisterhotkey
после звонка в NSApplicationMain.Если его еще нет, вам нужно добавить пул автоматического выпуска вокруг этого кода.
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
}