問題タブ [findersync]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - 目的 c を使用して、サンドボックス化されたアプリケーションで選択されたアイテムの完全なパスを見つける
の関数を使用して、選択したファイルまたはフォルダーの完全なパスを見つける必要がありますObjective-C
。これはサンドボックス化されたアプリケーションであるため、すべてのメソッドに対してオープンに機能しているわけではありません。
何かありましたらよろしくお願いします。
synchronization - Finder Sync 拡張機能とメイン アプリはどのように通信する必要がありますか?
私の使用例: ファイルの同期を行う「MainApp」があります。「MainApp」が、同期に関するすべてのサーバー呼び出しと、ドキュメント共有などのその他の REST API 呼び出しを処理することを希望します。
一方、同期ステータス アイコン オーバーレイを表示する Finder Sync Extension を用意します。また、ユーザーがファイルを共有する相手を選択できる共有ダイアログを表示するファイルコンテキストメニュー項目「共有」も含まれます。
質問:
FinderSyncExtension と MainApp はどのように通信する必要がありますか? XCP を使用する必要がありますか?使用する場合、通信は双方向で問題ありませんか? たとえば、一部のファイルが同期されているため、更新する必要があることを Finder に通知する MainApp と、「共有」操作を実行する必要があることを Finder が MainApp に通知します。
「共有」ダイアログを表示するのは誰ですか? FinderSyncExtension の [共有] メニュー項目をクリックすると、共有フォームが表示されます。これは、ファインダー拡張機能または MainApp によって表示される必要があります (FinderExtension が「共有」項目がクリックされたことを通知したと仮定します)。
Finder 拡張機能がフォームを表示する必要がある場合、FinderExtension はサーバーからデータ (共有用の連絡先やグループなど) も取得する必要があり、Finder 拡張機能がサーバーに対してネットワーク呼び出しを実行する必要があるかどうかはわかりません。
このトピックを調査したところ、いくつかのアプローチが見つかりました。
- FinderSyncExtension と MainApp は直接通信しません。代わりに、FinderExtension はデータベースからデータを読み取り、バッジを適切に表示します。このシナリオでは、同期が完了したときに FinderExtension を更新する方法や、なんらかのアクションを実行するように MainApp に通知する方法が不明です。
- XPC通信。FinderExtension は MainApp への呼び出しを開始できると思いますが、逆方向が予想されますか?
- macOS プロセス間に何らかの種類の NotificationCenter がありますか? 試してみましたが、MainApp で通知を配信
NSWorkspace.sharedWorkspace.notificationCenter
しNSDistributedNotificationCenter.defaultCenter
ていないようです。 - Seafile プロジェクトのような mach_ports?
swift - OS X Finder Sync アプリが xcode デバッガーにアタッチされない
ファインダー同期拡張アプリがあります。アプリの実行中に、ブレークポイントとコンソールが機能しません。
objective-c - Finder Sync Extension からユーザー フォルダにアクセスするにはどうすればよいですか?
ファイルにオーバーレイ アイコンを設定するために、Finder 拡張機能を使用して Cocoa アプリケーションを開発しています。
ユーザーが監視しているフォルダーをクリックするとすぐに、メソッドが呼び出されます- beginObservingDirectoryAtURL:
だから私のコードは次のとおりです。
[[NSFileManager defaultManager] subPathsAtPath:…]
nil
Finder 拡張機能から呼び出されると返されます。
同じパスで同じメソッドを呼び出すと、メイン アプリの要素が返されます。
どうにかして Finder 拡張機能から特定のフォルダーを監視できるようにすることはできますか?