2009-07-19 6 views
0

Ich habe eine NSTable, die eine Spalte von NSPopUpButtonCells enthält. Ich möchte die NSPopUpButtonCell basierend auf dem Inhalt einer anderen Spalte in der Tabelle filtern. Das fühlt sich an wie etwas, das eine ziemlich einfache Lösung haben sollte, aber im Moment sind die Lösungen, die ich zu entwickeln scheint, sehr kompliziert. Mein größtes Problem scheint zu sein, dass, wenn die Anwendung läuft und ich auf eine NSPopUpButtonCell klicke, ich etwas nicht finden kann, das aktiviert wird, bevor das Menü angezeigt wird, das dann den Filter einleiten wird. Ich habe versucht, einige Dinge wie TableViewSelectionIsChanging: aber sie alle scheinen zu aktivieren, nachdem die Liste für den PopUpButton aktiviert.Filtern von Daten in einer NSPopUpButtonCell in einer NSTableView

Jede Hilfe wird sehr geschätzt.

Antwort

1

Es stellte sich heraus, dass es eine einfache Lösung für dieses Problem gab. Ich habe einen NSArrayController verwendet, um die Zeilen in der Tabelle zu steuern. Jede Zeile war ein Objekt der Klasse InputCell. Ich fügte eine Methode hinzu, die ein NSArray an die InputCell-Klasse zurückgab und diese Methode verwendete [self ValueForKey:], um abhängig von den Filterkriterien für die Zelle ein anderes Array zu erstellen. Ich könnte dann Bindungen verwenden, um den Inhalt der NSPopUpButtonCell über den NSArrayController an das Array zu binden.

0

In Ihrer Delegiertenmethode tableView:willDisplayCell: können Sie eine Kopie des Menüs, das Sie für die Zelle verwenden, erstellen, filtern oder entsprechend ausfüllen und dann als Menü der Zelle festlegen. Das sollte den gewünschten Effekt erzielen.

Verwandte Themen