18

Info.plistで指定されたタイプのファイルをドックアイコンにドロップして(またはFinderで開くことを選択して)、ファイルのフルパスを使用してメソッドを呼び出すにはどうすればよいですか?

4

5 に答える 5

18

Info.plistのCFBundleDocumentTypes配列(「LSItemContentTypes」または「CFBundleTypeExtensions」のいずれか)を適切に設定した場合は、NSApplicationデリゲートを設定し、デリゲートメソッドapplication:openFile:を実装するだけです。

一度に複数のファイルが削除されることを期待している場合は、application:openFiles:を実装してください。

約束されたファイル(NSFilesPromisePboardType/ kPasteboardTypeFileURLPromise)については、Dockのアプリケーションアイコンに約束されたファイルをドロップするを参照してください。

于 2010-03-22T04:39:23.760 に答える
12

これがXcode5の更新されたソリューションです。AppDelegate.mで

-(BOOL)application:(NSApplication *)sender openFile:(NSString *)filename
{
    NSLog(@"%@", filename);
    return YES;
}

Xcodeのセットアップでは、[プロジェクト]>[ターゲット]>[情報]の[ドキュメントタイプ]を選択します。 プロジェクト>情報>ドキュメントタイプ

正しく入力するか削除する必要がある空の「ドキュメントコンテンツタイプUTI」配列がある場合は、Info.plistの設定を確認してください。 Info.plistから空のドキュメントコンテンツタイプUTI配列を削除します

Info.plistは次のようになります。 ドキュメントタイプInfo.plist

于 2014-01-22T16:08:45.847 に答える
9

現在のシステムでは、古いスタイルの4文字タイプ(上記など)の代わりにUTIを使用できますfold。Xcodeのドキュメントタイプエディタで、次のコマンドを使用して新しいタイプを作成します。

  • 名前:フォルダ
  • 識別子:public.folder

public.folderのサブタイプですpublic.directory。ユーザーにそのように表示されるディレクトリに一致します。つまり、ラッパーpublic.folderのようなパッケージではありません。.app

于 2013-02-28T04:00:10.180 に答える
1

サイドペインのターゲットグループでアプリケーションを選択し、getinfoを使用します。次に、新しいウィンドウで[プロパティ]タブを選択して、新しいドキュメントタイプを追加します。便宜上「Folder」という名前を付けます。OSタイプは「fold」である必要があります。そのままにしておくことができるストアの種類と役割。

于 2010-05-02T11:40:45.717 に答える
0

実際にドキュメントベースのアプリを作成している場合、パスを提供するように設定すると、必要以上の作業を行うことができます。ドキュメントベースのアプリケーションテンプレートを使用するだけです。ドキュメントコントローラーは、適切なクラスのインスタンスを作成します。そのクラスを書くだけです。

この方法で作成したアプリケーションは、ファイルのドロップを(ドキュメントとして開くことにより)無料で処理します。

于 2010-03-22T04:52:07.867 に答える