Frage

Ich möchte in die Lage, einen Text-Editor von meiner App laufen, wie sie vom Benutzer in dem TEXT_EDITOR Umgebungsvariable gegeben. Nun, es unter der Annahme, ist nichts in diesen Variablen, mag ich auf das TextEdit-Programm, das zu OSX auf Standard. Ist es koscher /Applications/TextEdit.app/Contents/MacOS/TextEdit in meine App zu codieren, oder gibt es einen besseren Weg, um das Programm zu nennen?

Edit:. Für das Protokoll, ich begrenzt einen bestimmten Anwendungspfad zu laufen, in C. Ich bin nicht einen Pfad zu einer Textdatei zu öffnen

Edit 2: Ernsthaft Leute, Ich öffne eine Datei nicht hier. Ich bitte um eine Anwendungspfad für einen Grund.

War es hilfreich?

Lösung

In Ihrem zweiten bearbeiten es macht es klingen wie Sie nur den Pfad zu TextEdit erhalten möchten, kann dies leicht geschehen, indem NSWorkspace Methode absolutePathForAppBundleWithIdentifier mit:

NSString *path = [[NSWorkspace sharedWorkspace] absolutePathForAppBundleWithIdentifier:@"com.apple.TextEdit"];

Andere Tipps

Mac OS X verfügt über einen Mechanismus „einheitlicher Typbezeichner“ genannt, die es verwendet Zuordnungen zwischen Datentypen und Anwendungen zu verfolgen, die sie verarbeiten können. Das Subsystem, das diese verwaltet, ist Launch Services. Sie können eines von zwei Dingen tun:

  • Wenn Sie eine Datei mit einer einigermaßen bekannten Pfaderweiterung, z.B. .txt, kann man einfach NSWorkspace fragen Sie die Datei in der entsprechenden Anwendung zu öffnen.

  • Wenn Sie keinen bekannten Weg Erweiterung haben, aber Sie wissen, welche Art von Daten, können Sie Launch Services stellen die Standardanwendung für diesen Typ zu suchen, und dann fragen NSWorkspace die Datei zu öffnen in dieser spezifischen Anwendung.

Wenn Sie es auf diese Weise tun werden Sie das gleiche Verhalten wie der Finder, und Sie müssen nicht zu fork () / exec () oder Verwendung system () nur eine Datei zu öffnen.

Ich glaube, zu „Applications“ werde nicht funktionieren, wenn die Spracheinstellung des Benutzers nicht Englisch ist. Zum Beispiel in Norsk der Ordner "Programme" wird "Programmer" genannt.

Das Apple-Dokument auf Internationalisierung ist hier . Ab Seite 45 ist ein Abschnitt über den Umgang mit lokalisierten Pfadnamen.

Ich glaube, dass Mac OS X eine Standardanwendung Mechanismus bereitstellt, so dass .txt in TextEdit.app oder Emacs oder GVim öffnen oder was auch immer der Benutzer angegeben hat. Ich konnte nicht alles online jedoch finden.

Sie können folgenden Befehl aus Ihrer Anwendung ausführen:

open <full path to text file>

Dies wird die Textdatei im Standard-Texteditor öffnen. Sie können einen beliebigen Dateityp öffnen open Befehl.

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