2011-01-21 14 views
3

NSOpenPanelを使用してファイルを開くとき、私はユーザーにiPhotoライブラリのみを選択させようとしています。たとえば、Apertureライブラリには拡張子.aplibraryがあります。しかし、iPhotoライブラリには拡張子がないようだ。NSOpenPanel iPhotoライブラリへの選択の制限

あなたの情報として、ApertureとiPhotoのライブラリは完全に正しいバンドルです。 Apertureバンドルは.aplibrary拡張子を持ち、iPhotoバンドルは拡張子がないようです。

ユーザーにiPhotoバンドルのみを選択させるにはどうすればよいですか?私は "setAllowedFileTypes"を使うことはできません。しかし、iPhotoはこの区別をすることができるようですが、私はこのケースでどのように処理されたのか分かりません。

答えて

3

NSOpenPanelには、NSOpenSavePanelDelegateを実装する必要がある代理人がいます。そのメソッドの1つは-panel:shouldEnableURL:です。このメソッドを実装すると、必要なロジックに基づいて誰かが場所を開くことができるかどうかを検出できます。

+1

グラハムさん、ありがとうございます。問題は、ユーザーが「開く」ボタンをクリックした後でのみフィードバックを得ることです。私は、灰色で表示されるべきではないファイルを持つメソッドを探しています。 –

+0

@bare_nature: '-panel:shouldEnableURL:'は、ファイルが提示されるたびに呼び出されます。ユーザーが "Open"をクリックした後に呼び出される '-panel:validateURL:error:'を考えています。 –

+0

あなたは正しいです。私の間違い。おかげで、グラハム。 –

関連する問題