簡単なエラー報告パッケージをまとめようとしています。メインプログラムがクラッシュすると、クラッシュログが保存され、レポータープログラムが起動します。レポータープログラムは、クラッシュログを私に送信できるかどうかをユーザーに尋ね、それを送信します。NSRunAlertPanelを使用して基本的なメッセージボックスを作成しています。
何らかの理由で、そのメッセージボックスは、開いている可能性のある他のウィンドウの下に埋め込まれて表示されています。Finderウィンドウからメインパッケージを実行すると、メインパッケージが上部に表示され、強制的にクラッシュします。レポーターウィンドウはFinderウィンドウの後ろに表示されます。
なぜこれが起こっているのですか、そしてそれをどのように解決することができますか?
最小限のテストケース:
#import <AppKit/AppKit.h>
int main(int a, char* av) {
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
NSApplication* q = [[NSApplication alloc] init];
NSRunAlertPanel(@"Hello", @"Aloha", @"OK", nil,nil);
[pool release];
}
で構築:
g++ test.mm -framework AppKit && ./a.out