Ich versuche, einen Datei-Explorer mit nscollectionview zu erstellen und implementiere derzeit ein Kontextmenü für jeden Eintrag (d. H. Kopieren/löschen/umbenennen/etc). Ich habe zur Zeit:NSArrayController-Element für Rechtsklick in NSCollectionView abrufen
- Ein NSCollectionView mit einem NSArrayController verknüpft, die eine für jedes Element
- Eine Unterklasse von NSBox als Ansichtsobjekt benutzerdefinierten hält, diese Spuren auch Mausereignisse und übergibt sie an die Steuerung
- Der Controller verfügt über einen NSMenu Auslass (rcMenu) und auch ein NSView Auslass (itemView) für die NSBox Unterklasse, die, wo das Menü Popup
der Code für den Aufruf des Menüs ist sein sollte:
[NSMenu popUpContextMenu: rc Menü withEvent: Ereignis fürView: itemView];
Einmal ausgeführt, das funktioniert, dass das Menü erscheint, wenn rechts das Element in der Sammlung Ansicht klicken, sondern das Ereignis auf Inspektion, die an die Steuerung übergeben wird, dann ist es nicht wirklich alles, was ich, um herauszufinden, verwenden könnte die Das Objekt wurde mit der rechten Maustaste angeklickt, mit Ausnahme der x, y-Koordinaten (die eher für NSWindow als für das Element oder NSCollectionView zu sein scheinen). Was ich wirklich will, ist das Objekt im NSArrayController, auf das man mit der rechten Maustaste geklickt hat.
Liegt es daran, dass ich es falsch einrichte, gibt es einen einfachen Weg, um es herauszufinden, oder ist es nur so schwierig, es auszuarbeiten?
Wird die Methode des Menüs des Erhaltens meine Fähigkeit beeinflussen das Element aus dem Array-Controller zu erhalten, obwohl ? Das ist das eigentliche Problem, das ich habe. Für was es wert ist, versuchte ich das defaultMenu und das funktionierte, hatte aber Probleme zu versuchen, menuForEvent, um rcMenu zurückzugeben, obwohl es eine durch Code erstellt fein zurückgegeben. – Septih
"Holen Sie den Artikel vom Array-Controller"? Sie werden bereits wissen, auf welches dargestellte Objekt der Benutzer geklickt hat, durch welche Objektansicht sie geklickt haben, vorausgesetzt, Sie haben einen Verweis von Ihrer Objektansicht zurück auf entweder das Objekt der Sammlungsansicht oder das dargestellte Objekt. –
Ich denke, das ist das Problem, ich kann nicht herausfinden, wie man diese Referenz zwischen der Artikelansicht und dem tatsächlichen Objekt/dargestellten Objekt erhalten kann. – Septih