0

私は Dave DeLong の DDHotKey クラス (見事なコーディングです) を利用する Objective-C で書かれたデモ アプリケーションを持っています。

具体的には、このクラスには registerhotkey (Dave DeLong 提供のサンプル コードの registerexample1) と unregisterhotkey (Dave DeLong 提供のサンプル コードの unregisterexample1) の 2 つの関数があり、それぞれプログラムの実行時とプログラムの終了時に実行したいと考えています。

これを行う方法がよくわからないので、どこを見ればいいのか、またはいくつかの基本的な指針についてのガイドを探しています。

ありがとう!

4

1 に答える 1

4

これを行う最も簡単なapplicationDidFinishLaunching:方法は、アプリ デリゲートのメソッドです。これは起動時に呼び出されます。このapplicationWillTerminate:メソッドは、アプリケーションが終了しようとしているときに呼び出されます。

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

registerhotkeyあるいは、 NSApplicationMain の呼び出しの前と 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
}
于 2011-03-29T22:20:38.957 に答える