NSTableView Table Header anpassen

  • NSTableView Table Header anpassen

    Hi,
    ich würde gerne, daß der Header meines TableViews wie der im Finder (Mavericks - List View) aussieht.

    Wenn in Xcode 6 ein TableView in den IB gezogen wird, wird unteranderem ein View namens "Table Header View" generiert.
    Schaut man in den Identity Inspektor ist es ein NSTableHeaderView Objekt.

    In der Referenz steht:

    [...]An NSTableHeaderView is used by an NSTableView to draw headers over its columns and to handle mouse events in those headers.

    NSTableHeaderView uses NSTableHeaderCell to implement its user interface. [...]


    Ok, NSTableHeaderCell liefert das Werkzeug.
    Ich verstehe jetzt nicht wie wie ich Sub Klassen muss weil im InterfaceBuilder hat der View keine Cell?

    Ich habe hier ein Tutorial gefunden wo "gezeichnet" wird, gibt es für TableViewHeade keine Templates wie für Buttons?

    Gruss zuko
  • Was meinst Du mit "Templates" genau? Unterklassen von NSCell sind u.U. deutlich aufwändiger wie Unterklassen von NSView. Bei letzterem kann man oft einfach entsprechende Subviews reinklatschen und gut ist. Bei den Cells muss man halt viel selbermachen. Besonders fällt das bei Cell-based TableViews auf, wenn man eine etwas aufwändigere CustomCell in einer Spalte haben möchte.

    Das Vorgehen mit der Category in dem Tutorial ist etwas eigenartig. Damit ändert man ja alle Tabellen in der Anwendung, nicht unbedingt das, wofür Categories gedacht sind. Da gibt's AFAIR auch eine Compiler-Warning. Besser ist es eine Unterklasse zu erstellen

    schönen Gruß

    gandhi