Frage

Mit dem Apple OS X Cocoa Framework, wie kann ich post a Blatt (slide-down-modaler Dialog) auf dem Fenster eines anderen Prozesses?

Edit: Geklärte ein bisschen:

Meine Anwendung ist eine Erweiterung Finder Subversion Versionskontrolle zu tun ( http://scplugin.tigris.org/). Ein Teil meiner Anwendung ist ein Plug-in (a Kontextmenüeintrag für Finder); der Großteil meiner Anwendung ist jedoch in einem separaten Daemon Vorarb. Aus verschiedenen Gründen haben wir praktisch alle den Code in den Dämon setzen gewählt; die Plug-in definiert nur das Menü selbst, und Apple-Events über den Dämon.

Manchmal muss der Daemon den Benutzer für weitere Informationen aufzurufen. Es kann ein Fenster auf dem Bildschirm für diesen werfen, aber das ist störend (zufällig angeordnet), und es scheint mir den Arbeitsablauf ist hier berechtigterweise modal, zum Beispiel „eine Datei auswählen, wählen Sie‚Commit‘aus dem Menü, bieten Kommentare begehen , die Operation tun. "

Inter Zusammenarbeit (wie eine Referenz von einer Art vorbei) ist akzeptabel. Beiden Prozesse sind von mir, aber ich will das Blattes des Code in den primären Prozess vermeiden Bindung

War es hilfreich?

Lösung

Wirklich, es klingt wie Sie versuchen, Ihre Interprozesskommunikation auf Ansichtsebene passieren zu haben, was nicht wirklich ist, wie Cocoa im Allgemeinen funktioniert. Die Dinge werden viel einfacher, wenn Sie Ihre Schichten ein bisschen mehr als das zu trennen.

Warum wollen Sie nicht das Blatt Code in den anderen Verfahren setzen? Es ist View-Code und Code anzeigen ist von Natur aus prozessspezifisch. Das Richtige zu tun hier ist wahrscheinlich etwas allgemeine modal-Blatt-Unterstützung zu Ihrem Plugin-Code und ein IPC Anruf hinzuzufügen, dass Ihr Dämon diesen Code rufen machen. Der Versuch, im Hinblick auf die Remote-Prozessobjekte über Schiff wird nightmarish sein, wenn Sie können es überhaupt funktioniert.

Sie sind die Rahmenbedingungen mit diesem Ansatz zu bekämpfen.

Andere Tipps

Sie können nicht ein Blatt zu einem Fenster in einem anderen Prozess hinzufügen, weil Sie die meisten haben nur den meisten eingeschränkten Zugang zu den Fenstern in dem anderen Prozess.

Bitte tu das nicht. Machen Sie die Interaktion nichtmodal, wenn überhaupt möglich. Gerade in so etwas wie ein begehen, dann ist es viel schöner in der Lage sein um Ihre Dateien zu durchsuchen, während Sie schreiben Kommentare begehen.

OS X tut Fenstergruppen, aber ich glaube nicht, können sie (leicht) Spannweite Anwendungen.

Eine andere Sache zu prüfen ist, dass in OS X ist es möglich, viele Finder-Fenster geöffnet auf dem gleichen Ordner zu haben (anders als in OS 9). Auch wenn Sie auf hat haben ausreichende Berechtigungen / APIs ein Blatt zu einem Finder-Fenstern hinzuzufügen, ist es nicht wie die Modalität des Fensters würde in der Lage, den Benutzer daran hindern, mit den Dateien zu arbeiten.

(Meine persönliche Meinung als Langzeit-Mac-Benutzer ist, dass diese Art von Interaktion mich bis die Wand fahren würde.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top