9

Cocoaベースのアプリケーションの起動中に、ユーザーにスプラッシュ画面(写真)を表示したいと思います。これはどのように可能でしょうか?


まずはどうもありがとうございました。私のアプリはしばらく実行されているので、アプリを実行する前にスプラッシュを表示したいと思います。さて、画像付きのウィンドウを内部に表示した場合、その後、アプリを実行する方法は?スプラッシュが表示された後にアプリが実行されていることを確認するにはどうすればよいですか?シーケンスを取得するにはどうすればよいですか?


まずはありがとうございました。そして、applicationWillFinishLaunchingメソッドでウィンドウを表示してorderFrontを使用し、次にapplicationDidFinishLaunchingで非表示にします:orderOutを使用します。これで、mainWindowが表示されず、アプリが終了することがわかりました。なぜですか?この質問を解決するにはどうすればよいですか?ありがとう!

4

4 に答える 4

12

ピーターの答えは最終的には正しいですが (アプリを書き直して起動を高速化する必要があります)、それは実際的な選択肢ではない場合がありますたとえば、後でコードをアプリケーションにロードすると (データ取得アプリケーションなど)、起動時にコードをロードする必要があり、時間がかかりすぎる場合があります。スプラッシュ スクリーンを表示する場合、最も簡単な方法は、アプリケーション デリゲートのapplicationWillFinishLaunching:メソッドで表示することです。アプリケーション MainMenu.nib にスプラッシュ ウィンドウを作成し、そのウィンドウを参照するアプリ デリゲートにアウトレットを追加します。次に、ウィンドウを画面に表示して非表示にすることができapplicationWillFinishLaunching:ますapplicationDidFinishLaunching:. この間、メイン スレッドの NSRunLoop は繰り返されないことに注意してください。そのため、スプラッシュ スクリーンを (ステータス、進行状況バーなどで) 更新する場合は、それらの再描画イベントを自分で管理する必要があります。

繰り返しになりますが、長時間の起動が必要かどうかをよく考えてください。そうである場合、プログレス インジケーターを含むスプラッシュ スクリーンを表示することは、ユーザーに対する最低限の義務です。

于 2009-03-26T16:42:39.253 に答える
6

なぜユーザーを嫌うのですか?

真剣に、これをしないでください。ユーザーがアプリを使用するのを待たせてはなりません。代わりに、アプリをすばやく起動してください。

(そして、答えを主張する場合に備えて: 画像を含むウィンドウを表示し、ユーザーが十分に長く待っていると感じたらウィンドウを非表示にします。)

于 2009-03-26T11:15:34.313 に答える
0

画像を含むウィンドウを表示し、起動の初期化が完了したら閉じます。

于 2009-03-26T14:36:06.233 に答える
0

上記の Barry の回答は、ドキュメント ベースのアプリでは機能しないようです。スプラッシュ ウィンドウを表示applicationWillFinishLaunching:すると、アプリの起動シーケンスが妨げられ、ドキュメント ウィンドウが作成されません。ここにサンプル プロジェクトをアップロードしました。でapplicationWillFinishLaunching:、コメント アウトする[_splashWindow orderFront:self ]と、ドキュメント ウィンドウが表示されます。

于 2011-03-29T17:06:09.857 に答える