Wiederverwertbarer Code mit UI

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Wiederverwertbarer Code mit UI

    Hallo,
    ich habe verschiedenes programmiert, das ich so einfach wie möglich in anderen Programmen wieder verwenden möchte.

    Beispielsweise eine Filebrowser oder ein Shortcut Tableview (wie die Key Bindings in Xcode).
    Wie breitet man das am Besten auf? Baut man da ein Framework oder kommt man nicht drum herum wieder die NIBs aufzubauen und alles zu verbinden?
    Gruss zuko
  • Ein Shortcut Tableview wird der User generell über die Preferences aufrufen. Bei einem File Browser würde es mehrere Möglichkeiten geben.

    Ich habe noch nie mit Frameworks gearbeitet die komplett MVC eingebunden haben. Die Apple Frameworks sind ja getrennt.
    Es würde auch davon abhängen in wie weit die Views in einem Framework nach dem Einbinden bearbeitet werden könnten.
    Wie schaut es da aus?

    Bei der Recherche zu dem Thema bin ich auch auf die Möglichkeit gestossen in Xcode selber Templates zu erstellen.
    Sprich beim erstellen eines Projekts in Xcode eigene Optionen für eine Cocoa Application hinzuzufügen.
    Habt ihr da Erfahrungswerte?
    Gruss zuko
  • Ich habe mich zunächst entschieden Wiederverwertbaren Code + UI in NSViews mit NSViewControllern als Files Owner zu organisieren.

    In der NSViewController Dokumentation wird auch darauf hingewiesen:
    "[...]A view controller is meant to be highly reusable,[...]"


    Dazu passend:
    [...]Starting in OS X v10.10, a view controller offers a full set of lifecycle methods, allowing you to manage the content of a window in a way that is on a par with iOS view controller management.[...]
    Gruss zuko
  • macmoonshine schrieb:

    Zum ersten Zitat: Das hängt davon ab, was du unter Wiederverwendbarkeit verstehst. Hast du Viewcontroller geschrieben, die in mehr als einem Projekt Sinn machen?

    Das zweite Zitat hat mit Wiederverwendbarkeit nichts zu tun.


    Nun, ich habe vor wiederverwendbaren Code, der in mehr als einem Projekt Sinn macht, mit NSViewControllern zu realisieren. Es geht ja um Code der an ein UI gebunden und in einem NSView eingebettet ist.
    Ich setze beispielsweise ein NSOutlineView in eine Xib die nur aus einem NSView besteht. Die Funktion ist die einer Sidebar wie man es aus dem Finder oder in Xcode kennt.
    Alles was die Sidebar können muss programmier ich in den NSViewController, der als Files Owner an den NSView gebunden ist. Und über den NSViewController kann ich den die XiB in jedes Projekt, das eine Sidebar benötig, einbetten.
    Das ist doch ein schöner modularer Aufbau.

    Das zweite Zitat hat mit der Wiederverwendbarkeit nicht direkt zu tun, zeigt aber das Apple NSViewController mit Methoden erweitert hat die ein feineres Content Management erlauben.
    Ich interpretiere daraus, das Apple NSViewControllern eine zentralere Bedeutung beimisst.


    View lifecycle:

    1. viewDidLoad

    2. viewWillAppear

    3. viewDidAppear

    ------User interaction cycle:

    -----> 1. updateViewConstraints

    -----> 2. viewWillLayout

    ------> 3. viewDidLayout

    4. viewWillDisappear

    5. viewDidDisappear


    Gruss zuko

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von zuko ()

  • zuko schrieb:

    Das ist doch ein schöner modularer Aufbau.

    Hört sich gut an. ;)

    zuko schrieb:

    Ich interpretiere daraus, das Apple NSViewControllern eine zentralere Bedeutung beimisst.

    Wahrscheinlich sollen sie eine ähnlich zentrale Rolle wie die UIViewController unter iOS spielen. Das macht ja auch Sinn, wenn man die Bereiche von OSX-Fenster über jeweils eigene Controller verwalten kann, anstelle einen dicken Controller zu verwenden.
    „Meine Komplikation hatte eine Komplikation.“