2

Login.xibとMain.xibがあり、一度ログインすると、トークンをファイルに保存します。トークンを含むこのファイルが存在する場合は、ログインの代わりにメインウィンドウを表示したいと思います。これは、それがどのユーザーであるかをすでに知っているためです。

どのウィンドウを表示するかをどこでどのように決定できますか?

4

1 に答える 1

2

アプリケーションデリゲートapplicationDidFinishLaunching:メソッドにこのファイルが存在するかどうかを確認します。

ファイルが存在する場合はメインウィンドウを表示し、存在しない場合はログインウィンドウを表示します。

編集

コメントに応じて、 NSWindowControllerクラスの使用を調べる必要があります。基本的に、制御するすべてのウィンドウにNSWindowControllerオブジェクトがあります。

また、メインウィンドウをロードするデフォルトの動作を変更するには、アプリケーションのいくつかの変更が必要になります。これは、ドキュメントベースのアプリケーションを作成しているかどうかによって異なります。

アプリケーションがドキュメントベースでない場合、これはアプリケーションのinfo.plistファイルで設定されているため、アプリケーションはmain.xibをロードすることを「認識」しています。基本的に、アプリケーションが起動すると、info.plistファイルを調べて、ロードが必要なペン先を見つけてロードします。通常、メインのペン先にはメニューとウィンドウが含まれています。ウィンドウを削除して別のペン先で再作成するだけで、デフォルトでウィンドウの読み込みを停止できます。

アプリケーションがドキュメントベースの場合、状況は少し異なります。ロードするnibファイルの名前を返すwindowNibNameというメソッドを持つ必要があるNSDocumentサブクラスがあります。このメソッドを削除し、代わりにmakeWindowControllersをオーバーライドして、 NSWindowControllerオブジェクトを返します。これにはもう少し多くのことがありますが、これで始めることができ、残りは元の質問の範囲を超えています。

于 2012-05-23T19:04:31.123 に答える