0

注: Objective-C、Cocoa、および Xcode を使用します。

最初は、すべてのプログラミングを AppDelegate で行い、ウィンドウなどのすべてのユーザー インターフェイス要素を同じ '.xib' (nib ファイル) に配置しました。これは最初はうまく機能しましたが、アプリケーションがより多くの「機能」を備えて高度になるにつれて、すべてが非常に雑然とし、ファイルが私の好みには長すぎました。

私は今、進歩しようとしています。マルチウィンドウプロジェクトを(適切かつ効率的に)どのように行うべきか疑問に思っていますか?私の計画は、すべてのウィンドウに .xib ファイルを用意し、必要なものだけを AppDelegate に入れることでした。次に、必要なすべての計算用のコア ファイルなどをアプリケーションで使用し、メイン コントローラー ファイルを使用して、アプリ内のすべてのウィンドウからアウトレットとアクションを制御します。ただし、私はObjective-Cを初めて使用し、ウィンドウコントローラーなどをセットアップしようとして非常に多くの問題や問題に遭遇しています。

私は正しい道を進んでいますか?私はそれを間違っていますか?Xcode でマルチウィンドウ ユーザー インターフェイス アプリケーションを管理するにはどうすればよいですか?

前もって感謝します。

4

1 に答える 1

2

複数のウィンドウの場合、それぞれに NSWindowController を使用し、ウィンドウに関連付けられた xib ファイルを使用するのが最善だと思います。「すべてのウィンドウからアウトレットとアクションを制御するメイン コントローラー ファイル」の意味がわかりません。各ウィンドウ コントローラーには、独自のウィンドウへのアウトレットがあります。複数の xib ファイルにまたがってアウトレットを接続することはできません。プロジェクトを作成するときにデフォルトで取得する MainMenu.xib ファイルに 1 つのウィンドウを作成し、それを使用して他のウィンドウを起動することもできますが、すべてのウィンドウが互いにどのように関連しているかを知らずに、より具体的なアドバイスを提供することは困難です。 .

編集後:

別のウィンドウを開きたい場合は、メニュー項目のアクション メソッドを次のようにします。

    self.controller = [[WindowController alloc] initWithWindowNibName:@"WindowController"];
    [self.controller showWindow:nil];

ここでは、新しいウィンドウ コントローラーへの強力な参照を保持するために、controller というプロパティがあります。そうしないと、コントローラーの割り当てが解除されるため、同時に表示したい複数のウィンドウがある場合は、それらを保持するためのプロパティが必要になります。

于 2013-02-13T01:23:42.163 に答える