1

バイナリファイル(自分で作成したものではなく、既存の形式)の読み込みを処理するnsdocumentサブクラスがあります。ファイル形式は、論理「ドキュメント」ごとに同じ名前の3つのファイルを使用します(拡張子は異なります)。

ユーザーがNSOpenPanelで3つのファイルを選択し、対応するウィンドウが作成された1つのNSDocumentサブクラスを作成できるようにしたいと思います。複数のファイルを選択できるようにパネルを設定する方法は知っていますが、NSDocumentControllerが使用しているパネルにアクセスする方法や、複数のファイルからバイナリデータをロードするためにオーバーライドする方法がわかりません。

4

1 に答える 1

1

ユーザーが何かをすることに依存することは、アプリ自体の制限を回避するためのいくつかの正しい方法で失敗することになります。あなたがユーザーに何をするように言っても、彼らはそれを行い、その反対であり、それに直交するすべてのものを行います。

plistで3つのタイプのそれぞれを宣言し、それらすべてを同じドキュメントクラスにルーティングします。ドキュメントは、作成されたファイルに関係なく3つのファイルすべてから読み取り、いずれかが欠落している場合はエラーを返します。おそらく、3つのうちの1つをドキュメントのプライマリファイルとして指定fileURLし、そのファイルへのURLを設定する必要があります。

ファイル調整を正しく実装するように注意してください(3つのファイルすべてのプレゼンターであり、それらのいずれかに書き込もうとする試みを調整する必要があります)。そうしないと、ユーザーはデータの破損や損失のリスクにさらされることになります。

[開く]パネルをいじってはいけません。ドキュメントベースのアプリでドキュメントを開く方法は、[開く]パネルだけではありません。あなたがする必要があること、あなたはあなたのGUIの中でではなく、あなたのGUIの後ろでする必要があります。

アプリがサンドボックス化されている場合、これはトリッキーまたは不可能になります。ここでは、セキュリティ範囲のURLブックマークが役立つ場合があります。

于 2012-11-10T03:24:46.847 に答える