Jede größere App benötigt einen Einstellungen-Dialog (»Preferences«). Der InterfaceBuilder bietet hierzu den NSTabViewController, der verschiedene Seiten per TabView umschaltbar anzeigt. Für umfangreiche Einstellungen wünscht man sich jedoch etwas mehr Flexibilität. Die hier präsentierte Lösung setzt auf einen NSViewController, der auf der linken Seite einen TableView anzeigt, in dem die verschiedenen Einstellungskategorien aufgelistet werden, sowie einen ContainerView, der für die ausgewählte Kategorie je einen separaten ViewController anzeigt. Hier die Vorteile dieser Lösung im Überblick:
  • Beliebige Anzahl an Kategorien
  • Die Einträge in der Kategorienliste bestehen aus einem Piktogramm sowie einer Textzeile. Umfangreichere Darstellungen sind leicht realisierbar.
  • Die Fenstergröße passt sich dynamisch an die Größe des präsentierten ViewControllers an.
  • Die Codestruktur ist übersichtlich: Pro Kategorie gibt es einen separaten ViewController, zusätzlich einen übergeordneten ViewController sowie einen dazugehörigen WindowController. Nachträgliche Änderungen bzw. Erweiterungen sind leicht möglich.

To be continued…