NSAlert ウィンドウを開き、didEnd コールバックのデリゲートを設定し、アラートが表示されている間、他のすべてのウィンドウを「無効」にする方法はありますか (ウィンドウ自体は可能ですが、ボタンを押したり、テキストを変更したりすることはできません)。
1 に答える
1
NSAlert コードに次を追加します
NSModalSession session = [NSApp beginModalSessionForWindow:theWindow];
[NSApp runModalSession:session];
// NSAlert stuff here ...
didEnd コールバックに追加します
[NSApp endModalSession:session];
モーダル ウィンドウの詳細については、NSApplicationの「イベント ループの管理」セクションを参照してください。
アップデート:
これは、コールバックなしでモーダルを実行する方法を示す Apple のドキュメントのサンプル コードです。
NSModalSession session = [NSApp beginModalSessionForWindow:theWindow];
for (;;) {
if ([NSApp runModalSession:session] != NSRunContinuesResponse)
break;
[self doSomeWork];
}
[NSApp endModalSession:session];
于 2011-06-15T10:04:50.103 に答える