Apple の脅威の通知と金銭目当てのスパイウェアへの対策について

Xcode15 自作のアプリケーションから関連付けしたファイル名を求めたい

Xcode15を使用してアプリケーションを作成しています。そのアプリをFinderで関連付けさせたのですが、アプリからどのファイルを選択してかを知る方法がわかりません。ProcessInfo.processInfo.arguments に設定されていないようです。ご教示のほどよろしくお願いします。

MacBook Pro 13″

投稿日 2024/03/11 12:19

返信

類似の質問

返信: 4

2024/03/11 14:04 品川地蔵 への返信

ご返事ありがとうございます。初めての投稿でうまく表現できていませんでした、すみません。

ご指摘の通りなのですが、任意のファイルに対して自作のアプリケーションを「このアプリケーションで開く」に設定しておいて、そのファイルをダブルクリックしてアプリを起動した時に、自作のアプリケーションからどのファイルをクリックしたかを知りたかったのです。

たとえば .txt のファイルをダブルクリックすると、テキストエディタがそのファイルを開くということはテキストエディタはファイルパスを渡されているということなので、同じようなことができないか、と思い色々探してみたのですが、見つからなかったので投稿させていただきました。

2024/03/11 14:23 macha184 への返信

そういうことであればApplication delegateの次のメソッドを定義すれば受け取れますね。

Objective-Cの場合でSwiftだとフォームが変わりますが。


// User double clicked file icon or drop them on to App icon, whenever app is already started or not.

- (void)application:(NSApplication *)application openURLs:(NSArray<NSURL *> *)files {

}

2024/03/11 13:34 macha184 への返信

Finderで関連付けさせた というのは ファイルのFinder Info を開いて

「このアプリケーションで開く」に設定したということでしょうか?

その場合ファイルの拡張属性に設定されるだけなので、アプリケーション側から

そのファイルを見つける方法は無いと思います。


2024/03/11 17:33 品川地蔵 への返信

Swiftに置き直して

 func application(_ application: NSApplication, open urls:[URL]) { }

これで受け取ることができました。

Developer DocumentationのOpening Filesの項目でも確認できました。

ありがとうございました、解決しました。




Xcode15 自作のアプリケーションから関連付けしたファイル名を求めたい

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple ID を使ってご参加ください。