2012-03-15 11 views
0

私はココアアプリケーションを作成しており、NSWindowControllerを使って設定ウィンドウを読み込んでいます。ユーザーが環境設定]ボタンを選択し、好みのウィンドウが、私は、アプリケーションがバックグラウンドでアプリケーションに戻って行く前に、彼らは新しく開いたウィンドウコントローラでやっていることを完了するためにユーザーを強制したい NSWindowController Subclassに強制的に制御することはできますか?

を開き

バックグラウンドで何が起こっているのかをブロックし、ユーザーにフォアグラウンドとのやりとりを強制的に完了させることはありますか?

タックス

+0

あなたが望むものはモーダルウィンドウと呼ばれ、可能であれば避けるべきです。なぜあなたはこれをしたいのですか?あなたが望むものを達成するためのより良い方法があるかもしれません。 –

+0

現在、私はHUDウィンドウをアプリケーションにオーバーレイさせる設定ボタンを持っているので、ユーザーはバックグラウンドでテーブルビューのフォントサイズを変更できます。問題は、ユーザーがまだprefsウィンドウでフォントサイズを変更できる間に、ユーザーがテーブルビュー内のテキストフィールドを編集できることです。これにより、NSTableView行にエラーが発生します。 –

+0

したがって、HUDウィンドウが表示されているときにアプリを効果的に無効にしようとしています –

答えて

1

これはおそらく動作しますか? HUDウィンドウのサブクラスを作成し、これを達成し、モーダルとして、あなたのウィンドウを表示するには、次の方法を使用することができます

- (BOOL)resignFirstResponder { 
    if (userMayLeave) return YES; 
    return NO; 
} 
0

を実装:

[[NSApplication sharedApplication] runModalForWindow:aWindow]; 

その後、次のいずれかの方法を使用する必要がありますあなたのモーダルウィンドウを消してください:

関連する問題