Erweiterte TableView Zeile (Zelle)

  • Erweiterte TableView Zeile (Zelle)

    Hi.

    Apple Mail. OutlineView links. Name einer Mailbox, davor Ordner-Symbol, dahinter Anzahl der ungelesenen Mails. Wie macht man so eine Zelle?
    Ok, das Bild vorne krieg ich noch rein (Attachment eines AttributedStrings), aber wie bekommt man jetzt dahinter noch was.
    Sind das in Wirklichkeit zwei Spalten, die verbunden sind?


    Manfred
  • Ok, das ist aber eine Zelle, wo vor dem Text ein Bild ist, dass kann man ja mit einer gewoehnlichen TextCell auch erreichen.
    Mir ging es eher um den hinteren Teil. Wo z.B. auch noch ein NSProgressIndicator drin ist oder halt eben diese ungelesene Mail Anzahl...

    cya,
    Manfred
  • Scheint bei Mail mit einer Custom Cell gelöst worden zu sein und nicht mit einer 2. Spalte, da der Text bis zum rechten Rand geht und in anderen Zeilen ganz rechts evtl. eine Grafik angezeigt wird. Dies würde mit einer 2. Spalte in der nur die Grafik, also z.B. ein Progress Indicator angezeigt wird, nicht funktionieren, da in diesem Fall der Text schon rechts in der 1. Spalte abgeschnitten würde, oder?
  • Nach wie vor zu Fuss, soweit ich weiss. Aber ausgehend von Apples o.g. Beispiel ist das ja kein grosses Problem. Man nehme einfach rechts auch ein bisschen Platz weg, so wie schon links fuer's Bildchen, und male da seinen Indikator/Knopf/Zaehler/sonstwas rein.

    Einen Attributed-String hingegen wuerd' ich persoenlich nicht nehmen. Wenn man den Zellwert editieren will, hat man dann naemlich ein Problem -- jedenfalls dann, wenn man das Bild nicht miteditieren will.

    Und noch ein ergaenzender Hinweis: Spaetestens ab Leopard ist es wirklich sehr zu empfehlen, von einer NSTextFieldCell auszugehen, anstatt seine ganz eigene NSCell-Subklasse zu veranstalten. Dann spart man sich naemlich eine Menge Drag-&-Drop-Kopfschmerzen.
  • Na ja, erstens kann man ja beim Editieren das Abfangen und zum anderen würde ich doch sagen, dass man beim Start des Editierens das einfach heraus nimmt. Macht Mail auch nicht anders. Soooo falsch kann es also nicht sein.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Tatsache -- das war mir noch gar nicht aufgefallen: Mail laesst das Bild zwar stehen, aber der Zaehler wird waehrend des Editierens nicht dargestellt. Das ist vernuenftig, muss ich zugeben -- ganz unabhaengig davon, wie man diese Zusatzdinge auf den Schirm bringt. *abkupfer*

    Aber weil ich doch so stur bin, beharre ich nochmal eben: Wenn man fuer's Editieren schon einen neuen Rahmen berechnet -- naemlich um das Bild stehen zu lassen -- dann hat man die Hauptarbeit fuer ein selbstgemaltes Bild schon erledigt. Der Attributed-String-Weg scheint mir, so ganz subjektiv, vor diesem Hintergrund sogar umstaendlicher.

    (Zugegeben: Ich kann Attributed Strings einfach nicht leiden. Und das, obwohl ich mir eine ganze Bibliothek an Kategorie-Methoden angelegt habe, um mit den Dingern besser zurecht zu kommen.)

    Ausserdem waer's ein zusaetzlicher, wenn auch verkraftbarer Aufwand, die Zelle dazu zu bringen, die Ellipse bei zu langen Namen genau vor dem Zaehler einzufuegen, so wie Mail (und deshalb auch meine entsprechende Eigenbau-Zelle) das tut. Malt man den Zaehler selbst, d.h. ausserhalb eines Attributed Strings, bekommt man das seit Mac OS X 10.irgendwas via NSLineBreakByTruncatingTail umsonst.
  • Na, für das Bild am Anfang gibt es ja die ImageAndTextCell. Die funktioniert auch gut. IIRC liegt in der roten Hütte auch noch etwas entsprechendes mit Bindings herum. Ich meine, das mal als Wichsvorlage verwendet zu haben. Und diese verwendet wirklich zwei Cells.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?