Wenn ich einen NSTableView habe, werden ja die draw...-Methoden der NSCells recht häufig aufgerufen (Ändern der Zellenwerte, Größenänderung des Fensters, Auswählen einer Zelle, Größenänderung der Spalte, etc.) aufgerufen. So weit, so vernünftig.
Jetzt habe ich in meiner NSCell-Subklasse einen NSProgressIndicator hinzugefügt (als Subview im ControlView). Funktioniert soweit auch alles ganz gut, bis auf einen Sonderfall: das Verschieben der Spalte. Also wenn ich beispielsweise die Spalte links von der Fortschrittsspalte verkleinere oder vergrößere, dann wird die Fortschrittsspalte nicht neu gezeichnet, weil sie ja nur verschoben wird, aber sich nicht ändert. Der restliche Inhalt der Zelle (mit draw hinzugefügt) wird auch korrekt mit nach links oder rechts verschoben. Nur der ProgressIndicator bleibt bis zum nächsten draw an der alten Position kleben (wahrscheinlich weil es ein Subview ist).
Gibt es eine einfache Möglichkeit das Problem zu beheben? Also zum Beispiel irgendwie mitbekommen, wann sich die Spalte ändert und dann manuell die draw...-Funktion der Zelle anzustoßen?
Jetzt habe ich in meiner NSCell-Subklasse einen NSProgressIndicator hinzugefügt (als Subview im ControlView). Funktioniert soweit auch alles ganz gut, bis auf einen Sonderfall: das Verschieben der Spalte. Also wenn ich beispielsweise die Spalte links von der Fortschrittsspalte verkleinere oder vergrößere, dann wird die Fortschrittsspalte nicht neu gezeichnet, weil sie ja nur verschoben wird, aber sich nicht ändert. Der restliche Inhalt der Zelle (mit draw hinzugefügt) wird auch korrekt mit nach links oder rechts verschoben. Nur der ProgressIndicator bleibt bis zum nächsten draw an der alten Position kleben (wahrscheinlich weil es ein Subview ist).
Gibt es eine einfache Möglichkeit das Problem zu beheben? Also zum Beispiel irgendwie mitbekommen, wann sich die Spalte ändert und dann manuell die draw...-Funktion der Zelle anzustoßen?
Also ich habe schon einen TableView in dem auch in den Zellen die Fortschrittsbalken angezeigt werden. Dies erfolgt wie du erwähnst mit ProgressIndicator-Views, die vorgehalten werden und beim Update der Zellen verwendet werden. Also das funktioniert soweit ja auch.