2012-04-09 9 views
3

Ich habe ein Fenster, das mehrere ziemlich komplexe Ansichten enthält. Im Moment verwende ich einen einzelnen NSWindowController, um die Benutzeroberfläche für das Fenster und alle Ansichten zu steuern. Es wird eine ziemlich große Klasse, da es sich um die Details jeder einzelnen Ansicht handelt.Mehrere NSViewControllers an eine Feder anschließen

Die Ansichtsverhalten sind jedoch voneinander unabhängig, daher sehe ich eine Möglichkeit, die UI-Logik für jede Ansicht in einen separaten Controller zu versetzen.

Nach dem Mac App Programming Guide, das ist genau das, was View-Controller sind für:

Verwenden View-Controller die Arbeit für die Verwaltung von mehr anspruchsvolle Fensterlayouts aufzuteilen. Ihre View-Controller arbeiten zusammen ( ) mit dem Fenster-Controller, um den Fensterinhalt darzustellen.

Ich kann jedoch keine Dokumentation oder Beispiele finden, wie diese Idee in der Praxis funktioniert. Kann ich der nib-Datei neben dem Fenster-Controller mehrere View-Controller hinzufügen?

Antwort

3

Wenn Sie die View-Controller der Nib hinzufügen, werden sie dort instanziiert, und Sie würden IBOutlet s zum Fenster-Controller hinzufügen (vorausgesetzt, dass der Besitzer der Nib-Datei ist), um sie zu verbinden.

In Bezug auf Speicher könnte dieses Schema jedoch teuer werden, vor allem die mehr View-Controller, die Sie haben. Sie sollten stattdessen stattdessen in Betracht ziehen, sie in der Fenstersteuerung instanziieren zu lassen (d. H. Tun dies nur, wenn sie benötigt werden), vorausgesetzt, dies führt nicht zu einer unerwünschten Verzögerung, bevor die Ansicht zum ersten Mal präsentiert wird.

Haben Sie keine Angst, beide Ansätze zu versuchen. Einer von ihnen könnte für Sie am besten sein.

In jedem Fall applaudiere ich Ihnen für Ihre Entscheidung, den gesamten Code in separate Controller auszumerzen. Sehr schön. Viel Glück für Ihre Bemühungen.

Verwandte Themen