Ich fange an zu denken, dass meine Cocoa-Anwendung nicht wirklich nach den Prinzipien von MVC ausgeführt wird. Mein Problem ist folgendes:Zugriff auf den Controller in einer Cocoa-Anwendung
Ich habe einige Klassen in meinem Projekt, eines der Copier.h
genannt und ein anderes DropReciever.h
genannt. Copier
ist eine Art meiner Hauptansicht Controller, wie es alle Bindungen und Hauptmethoden hat. DropReciever
ist eine benutzerdefinierte Implementierung einer NSView
, die es der App ermöglicht, Dateien per Drag & Drop zu akzeptieren.
Gibt es jetzt eine einfache Möglichkeit, Nachrichten an Copier
von DropReceiver
zu senden? Im Moment kennen sich die beiden nicht, und ich kann mir keinen eleganten Weg vorstellen, sie zu verbinden, da sie beide getrennt voneinander instanziiert sind. Wie kann ich sie dazu bringen, sich zu sehen? Oder gibt es eine elegante, Coca-ische Art, das besser zu machen?
(Wenn Sie an meinem Quellcode aussehen wollen, es ist here.)
genial. Vielen Dank! – winsmith
Ich sehe, dass dies als die "richtige" Antwort gewählt wurde, aber es klingt wie Winsmith eigentlich will Nachrichten in die andere Richtung senden - von der Ansicht auf den Controller. Dies bedeutet, dass für die Ansicht ein 'Kopierer *' - Verweis erforderlich ist und die Verbindung umgekehrt hergestellt werden muss. – erikprice
Es wäre ziemlich einfach, die Verbindung rückgängig zu machen, oder, sobald die Verbindung hergestellt wird, eine Art Delegatending zu machen – cobbal