Xcode15 自作のアプリケーションから関連付けしたファイル名を求めたい
Xcode15を使用してアプリケーションを作成しています。そのアプリをFinderで関連付けさせたのですが、アプリからどのファイルを選択してかを知る方法がわかりません。ProcessInfo.processInfo.arguments に設定されていないようです。ご教示のほどよろしくお願いします。
MacBook Pro 13″
AppleサポートAppおよびYouTubeチャンネルのお知らせ
* iOS向けAppleサポートAppのバージョン5.6.1が公開されました。
* YouTube - Apple Japanチャンネルで有用なヒントや使い方を配信中です。
* iOS向けAppleサポートAppのバージョン5.6.1が公開されました。
* YouTube - Apple Japanチャンネルで有用なヒントや使い方を配信中です。
コミュニティでの投票方法と通知設定
コミュニティでの投票方法や通知の設定方法に関する記事を公開しました。
コミュニティでの投票方法や通知の設定方法に関する記事を公開しました。
Apple Account(Apple ID)の不正利用を確認する方法
Apple Accountに関するよくある質問についてはこちらのページを、また不正利用を確認する方法についてはこちらのドキュメントをご参照ください。
Apple Accountに関するよくある質問についてはこちらのページを、また不正利用を確認する方法についてはこちらのドキュメントをご参照ください。
Xcode15を使用してアプリケーションを作成しています。そのアプリをFinderで関連付けさせたのですが、アプリからどのファイルを選択してかを知る方法がわかりません。ProcessInfo.processInfo.arguments に設定されていないようです。ご教示のほどよろしくお願いします。
MacBook Pro 13″
ご返事ありがとうございます。初めての投稿でうまく表現できていませんでした、すみません。
ご指摘の通りなのですが、任意のファイルに対して自作のアプリケーションを「このアプリケーションで開く」に設定しておいて、そのファイルをダブルクリックしてアプリを起動した時に、自作のアプリケーションからどのファイルをクリックしたかを知りたかったのです。
たとえば .txt のファイルをダブルクリックすると、テキストエディタがそのファイルを開くということはテキストエディタはファイルパスを渡されているということなので、同じようなことができないか、と思い色々探してみたのですが、見つからなかったので投稿させていただきました。
そういうことであれば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 {
}
Finderで関連付けさせた というのは ファイルのFinder Info を開いて
「このアプリケーションで開く」に設定したということでしょうか?
その場合ファイルの拡張属性に設定されるだけなので、アプリケーション側から
そのファイルを見つける方法は無いと思います。
Swiftに置き直して
func application(_ application: NSApplication, open urls:[URL]) { }
これで受け取ることができました。
Developer DocumentationのOpening Filesの項目でも確認できました。
ありがとうございました、解決しました。
Xcode15 自作のアプリケーションから関連付けしたファイル名を求めたい