0

私は次のように振る舞いたい非ドキュメントベースのココアアプリを構築しています:

  • メインウィンドウには、アイテムのリスト(Core Dataに基づく)を含むテーブルビューが含まれています。
  • 各アイテムは独自のウィンドウで開く必要があります
  • 同様に、[新しいアイテム]ボタンをクリックすると、新しいアイテムウィンドウが開き、そのような複数のウィンドウを同時に開くことができます。

現在テーブルビューを処理しているアプリデリゲートで、次のメソッドを実装して新しいアイテムウィンドウを開きました。

-(IBAction)newItem:(id)sender {

    MyItemWindowController *itemController = [[MyItemWindowController alloc]initWithWindowNibName:@"MyItemWindowController"];

    [itemController showWindow:self];

}

ウィンドウは表示されますが、ほとんどすぐに消えます。ただし、appDelegateのインスタンス変数であるWindow Controllerをインスタンス化すると、ウィンドウは固定されますが、そのようなウィンドウは常に1つしか開いたままにできません。

上記の機能が本当に必要ですが、アイテムをドキュメントとしてディスクに保存できる必要がないため、ドキュメントベースのアーキテクチャを使用したくありません。

助言がありますか?本当に基本的なものが欠けているに違いないことはわかっていますが、それを理解することはできません。

4

1 に答える 1

4

ARCが原因でウィンドウが消えたと思います(あまり詳しくないので、それが理由かどうかはわかりません)。そのため、あなたが言ったことを実行してください。ただし、インスタンス変数としてMyItemWindowControllerを使用する代わりに、配列を使用してください。別の新しいウィンドウが必要になるたびに新しいウィンドウコントローラーを追加するインスタンス変数として。

于 2012-07-20T11:05:36.007 に答える