TableView

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

  • Hallo zusammen!

    Hat hier jemand schon Erfahrung mit der NSTabelView? Ich habe da eine Frage: Gibt es eine Mˆglichkeit f¸r einzelne Spalten einzustellen, dass diese nicht verschoben oder angew‰hlt werden kˆnnen?

    Dankbar f¸r jeden Hinweis!

    Grufl,
    Werner
  • RE: TableView

    Ich w¸rde versuchen, in der Methode clickedColumn abzufragen, ob die Spalte selektiert wurde, und diese dann ggf. deselektierten.
    (Nicht ausprobiert). Alternativ kˆnntest Du auch versuchen, in der Methode, allowsColumnSelection abfragen, welche Spalte selektiert werden soll, und dann nur in diesem fall FALSE zur¸ckgeben.
    Ich denke, so l‰flt sich verhindern, dass eine Spalte ausgew‰hlt wird. Und eine nicht ausw‰hlbare Spalte sollte sich auch nicht verschieben lassen.

    Gib mal ein Feedback, ob es funktioniert hat.
  • RE: TableView

    Original von snowman
    Ich w¸rde versuchen, in der Methode clickedColumn abzufragen, ob die Spalte selektiert wurde, und diese dann ggf. deselektierten.


    So mach ich es, w‰re aber halt schˆn, wenn man schon beim Klicken sieht, dass es nicht geht (keine Markierung).

    Original von snowman
    (Nicht ausprobiert). Alternativ kˆnntest Du auch versuchen, in der Methode, allowsColumnSelection abfragen, welche Spalte selektiert werden soll, und dann nur in diesem fall FALSE zur¸ckgeben.
    Ich denke, so l‰flt sich verhindern, dass eine Spalte ausgew‰hlt wird. Und eine nicht ausw‰hlbare Spalte sollte sich auch nicht verschieben lassen.


    D.h. Subklasse? Wollte ich eigentlich vermeiden. Ich werd's mir mal ¸berlegen!

    Danke f¸r die Hilfe!

    Werner
  • RE: TableView

    Benutze einen "Table delegate":

    Die 'tableView:shouldSelectTableColumn:' Methode sollte das gew¸nschte Ergebnis liefern. (Siehe unter Cocoa Developer Documentation > User Interface Elements > Controls and Cells > Table Views ).

    Allerdings weiss ich nicht, ob im vorhinein f¸r den Nutzer erkennbar ist, dass die Spalte nicht ausw‰hlbar sein soll,
    merkt man wohl erst beim erfolglosem Klicken.

    Eine Subklasse abzuleiten, sollte solange wie es Alternativen gibt vermieden werden. Delegates und Notifications sind ein h‰ufig eingesetztes Mittel unter Cocoa, um Anpassungen an das Objektverhalten zu ermˆglichen. Dummerweise ist es nicht einfach den ‹berblick ¸ber die ganze Sache zu bekommen, da hilft wohl nur: Erfahrungen sammeln, Dokumentationen durchbl‰ttern :rolleyes: und dieses Forum zum Beispiel :)
  • RE: TableView

    Benutze einen "Table delegate"


    Ich verwende ja Delegates - gerne und reichlich!

    Ich habe mich wohl ein wenig zu unklar ausgedr¸ckt. Die Tabellenspalten sind NICHT anw‰hlbar (allowSelection==NO), es werden lediglich die header markiert (unter Benutzung von setHighlightedTableColumn:) und zwar in der delegate Funktion tableView:didClickTableColumn:

    Was ich nun suche, ist eine Funktion tableView:shouldClickTableColumn: oder so ‰hnlich, die aufgerufen wird, bevor die Maus losgelassen wird. Es gibt zwar eine Funktion tableView:mouseDownInHeaderOfTableColumn:. Diese hilft mir jedoch wiederum nichts, weil man damit den Klick nicht abfangen kann (um z.B. ein Verschieben der Spalte zu verhinden).

    Weiss jemand einen Rat?