Ich verwende NSOutlineView
ohne NSTreeController
und habe meine eigene Datenquelle implementiert. Wie wähle ich einen Artikel am besten aus?
NSOutlineView
support bereits expandItem:
und collapseItem:
. Und mir fehlt eine handliche Methode wie 'selectItem:'. Wie kann ich das programmatisch machen?
Danke.
Denk daran, in Superklassen zu suchen, wenn du etwas nicht finden kannst. In diesem Fall stammt eine der Methoden, die Sie benötigen, aus NSTableView, der unmittelbaren Oberklasse von NSOutlineView.
Die Lösung besteht darin, Ruft den Zeilenindex für das Element mit rowForItem:
ab, und wenn es nicht -1 ist (Element nicht sichtbar / nicht gefunden), erstellen Sie einen Index damit mit [NSIndexSet indexSetWithIndex:]
und übergeben Dieser Index wurde auf Die Methode selectRowIndexes:byExtendingSelection:
.
Nein, es gibt keine Methode selectItem:
, aber es gibt eine Methode rowForItem:
. Wenn Sie dies mit Peters Ratschlag zur Verwendung von selectRowIndexes:byExtendingSelection:
oben kombinieren, sollten Sie alle benötigten Informationen haben.
Wenn Sie wirklich eine Methode zur Auswahl eines Elements haben wollten, die ich aus Gründen der Konsistenz mit setSelectedItem:
aufrufen würde, könnten Sie etwas in einer Kategorie in NSOutlineView
Ich habe keine Ahnung, ob dieser Code tatsächlich funktioniert; Ich habe es einfach abgeschafft, um das Konzept zu illustrieren.
Hier ist ein Codefragment, das ich verwendet habe, um ein Element in einer PXSourceList programmgesteuert auszuwählen.
sourceList ist ein normales PXSouceList-Objekt und ich wollte das zweite Element in der ersten Gruppe des Umrisses auswählen.
%Vor%
Wenn Sie noch nicht wissen, PXSourceList ist ein ausgezeichneter Ersatz für ein NSOutlineView, wenn Sie nach itunes / Mail Style Konturen suchen. Hier abholen: PxSourceList
Tags und Links cocoa select nsoutlineview