2

サードパーティのコードを読み込むことができるアプリケーションがあります。サード パーティのコードで実行できる機能の 1 つは、アプリがエクスポートできる形式を追加することです。saveDocumentTo:エクスポートを実装するための手段として使用しています。

ドキュメントのオーバーライドを介して保存するために利用可能なファイルタイプのメニューをカスタマイズできることは理解していますwritableTypesForSaveOperation:が、機能しないのは、保存ダイアログで、メニューから選択したときに適切なファイル拡張子がファイル名に追加されないことです。

オーバーライドしようとfileNameExtensionForType:saveOperation:しましたが、それは呼び出されません。

保存ダイアログで正しいファイル拡張子を見つけるにはどうすればよいですか (コンパイル時に不明な場合)。

4

1 に答える 1

3

これは、保存パネルのカスタム エクスポート アクセサリ ビュー内で行いました。カスタム エクスポート アクセサリ ビューNSSavePanelは、ユーザーがエクスポート先の形式を変更するたびに、 の許可されるファイル タイプを変更するだけです。

拡張子を設定する場合は、その拡張子を含む 1 つの要素を含む配列を渡します。

ドキュメントには-[NSSavePanel setAllowedFileTypes:]、より複雑なケースをサポートするために、この点に関する の動作に関する重要な詳細がいくつかあります。

討論

ファイルの種類は、一般的なファイル拡張子または UTI にすることができます。nil 値は、任意のファイル タイプを使用できることを示します。デフォルト値はゼロです。

ユーザーが拡張子を指定しない場合、allowedFileTypes の最初の項目が保存パネルの拡張子として使用されます。ユーザーが配列にないタイプを指定し、allowsOtherFileTypes が YES の場合、保存を求めるプロンプトが表示されたときに別のダイアログが表示されます。

NSOpenPanel: Mac OS X の v10.6 より前のバージョンでは、このプロパティは無視されます。v10.6 以降にリンクするアプリケーションの場合、このプロパティは、開いているパネルで有効にする必要があるファイルを決定します。非推奨のメソッドを使用して開いているパネル (types: パラメーターを取るもの) を表示すると、この値が上書きされるため、使用しないでください。許可されたファイル タイプは、パネルの実行中に (たとえば、アクセサリ ビューから) 変更できます。ファイルの種類は、一般的なファイル拡張子または UTI にすることができます。これは、「有効なファイルの種類」とも呼ばれます。nil 値は、すべてのファイルを有効にする必要があることを示します。

場合によっては、専用のエクスポート ダイアログが表示されることもあります。これにより、複数の異なる形式がある場合に、この作業の複雑さが軽減されます。以前と同様に、これをサポートするために許可されたファイル タイプを更新するだけです (この場合、必ずしも動的である必要はありません)。

于 2012-02-28T09:44:23.510 に答える